Commit 6768c80d by liyanlin

fix

parent 7d907fac
...@@ -168,8 +168,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -168,8 +168,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
/*5、下班前预约的,只要开始时间在下班前的,服务结束的时间没有超过最晚可预约时间,就可以约 /*5、下班前预约的,只要开始时间在下班前的,服务结束的时间没有超过最晚可预约时间,就可以约
如果勾选了超出最晚可预约时间是否可约,那就是只要开始时间是下班前的,就都可约 如果勾选了超出最晚可预约时间是否可约,那就是只要开始时间是下班前的,就都可约
因此这里改为下班后不可约,下班前预约的做特殊时间段处理*/ 因此这里改为下班后不可约,下班前预约的做特殊时间段处理*/
Period latestScheduledTimeMillsPeriod = new Period(workEndTime, dayEndTime); //休息时间
periodList.add(latestScheduledTimeMillsPeriod); long maxTime = periodList.stream().map(Period::getEndTime).distinct().max(Long::compareTo).get();
Period breakTime = new Period(workEndTime > maxTime ? workEndTime : maxTime, dayEndTime);
//periodList.add(latestScheduledTimeMillsPeriod);
/*if (StringUtils.isNotEmpty(latestScheduledTime) && storeClassesTechnician.getClassesManage().getLatestScheduledTimeEnable() == 1) { /*if (StringUtils.isNotEmpty(latestScheduledTime) && storeClassesTechnician.getClassesManage().getLatestScheduledTimeEnable() == 1) {
long latestScheduledTimeMills = simpleDateFormat.parse(day + " " + latestScheduledTime).getTime(); long latestScheduledTimeMills = simpleDateFormat.parse(day + " " + latestScheduledTime).getTime();
Period latestScheduledTimeMillsPeriod = new Period(latestScheduledTimeMills, dayEndTime); Period latestScheduledTimeMillsPeriod = new Period(latestScheduledTimeMills, dayEndTime);
...@@ -213,7 +215,8 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -213,7 +215,8 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
storeClassesTechnician.getTechnicianManage(), storeClassesTechnician.getTechnicianManage(),
latestScheduledTimeMills, latestScheduledTimeMills,
storeClassesTechnician.getClassesManage().getLatestScheduledTimeEnable(), storeClassesTechnician.getClassesManage().getLatestScheduledTimeEnable(),
workEndTime); workEndTime,
breakTime);
storeTechnicianPeriodList.add(storeTechnicianDTO); storeTechnicianPeriodList.add(storeTechnicianDTO);
} }
...@@ -312,10 +315,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -312,10 +315,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
List<IdleTimeDTO> idleTimeDTOList = new ArrayList<>(qry.getDateTimeList().size()); List<IdleTimeDTO> idleTimeDTOList = new ArrayList<>(qry.getDateTimeList().size());
ExecutorService threadPool = ThreadUtil.newExecutor(qry.getDateTimeList().size()); //ExecutorService threadPool = ThreadUtil.newExecutor(qry.getDateTimeList().size());
for (Long dateTime : qry.getDateTimeList()) { for (Long dateTime : qry.getDateTimeList()) {
threadPool.submit(() -> { //threadPool.submit(() -> {
System.out.println("threadName:" + Thread.currentThread().getName()); //System.out.println("threadName:" + Thread.currentThread().getName());
//每个主服务由不同的美甲师做,setter主服务的时间period //每个主服务由不同的美甲师做,setter主服务的时间period
mainScheduleServeQueryLinkedList.forEach(mainScheduleServeQuery -> { mainScheduleServeQueryLinkedList.forEach(mainScheduleServeQuery -> {
...@@ -347,16 +350,16 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -347,16 +350,16 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
idleTimeDTO.setDefaultNodeList(defaultNodeList); idleTimeDTO.setDefaultNodeList(defaultNodeList);
idleTimeDTOList.add(idleTimeDTO); idleTimeDTOList.add(idleTimeDTO);
}); //});
} }
threadPool.shutdown(); //threadPool.shutdown();
//等待直到所有任务完成 //等待直到所有任务完成
try { /*try {
threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.MINUTES); threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.MINUTES);
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }*/
if (qry.getShowNodeDetail() != null && !qry.getShowNodeDetail()) { if (qry.getShowNodeDetail() != null && !qry.getShowNodeDetail()) {
idleTimeDTOList.forEach(idleTimeDTO -> { idleTimeDTOList.forEach(idleTimeDTO -> {
...@@ -505,21 +508,28 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -505,21 +508,28 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
for (TreeProgram treeProgram : treePrograms) { for (TreeProgram treeProgram : treePrograms) {
StoreTechnicianPeriod storeTechnician = treeProgram.getStoreTechnicianDTO(); StoreTechnicianPeriod storeTechnician = treeProgram.getStoreTechnicianDTO();
ScheduleServeQuery scheduleServeQuery = treeProgram.getScheduleServeQuery(); ScheduleServeQuery scheduleServeQuery = treeProgram.getScheduleServeQuery();
if(storeTechnician.getName().equals("梁正菊")&&scheduleServeQuery.getPeriod().getStartTime() >= 1633942800000L){
log.info("--------------");
}
for (Period period : storeTechnician.getPeriodList()) { for (Period period : storeTechnician.getPeriodList()) {
boolean pass = true;
if (period.conflict(scheduleServeQuery.getPeriod())) {
pass = false;
}
/*下班前预约的,只要开始时间在下班前的,服务结束的时间没有超过最晚可预约时间,就可以约 /*下班前预约的,只要开始时间在下班前的,服务结束的时间没有超过最晚可预约时间,就可以约
如果勾选了超出最晚可预约时间是否可约,那就是只要开始时间是下班前的,就都可约*/ 如果勾选了超出最晚可预约时间是否可约,那就是只要开始时间是下班前的,就都可约*/
if(scheduleServeQuery.getPeriod().in(storeTechnician.getWorkEndTime())) { //前面的判断没有冲突,并且服务开始时间小于下班时间时
if (storeTechnician.getLatestScheduledTimeEnable() != 1 && if (pass && scheduleServeQuery.getPeriod().getStartTime() <= storeTechnician.getWorkEndTime()) {
scheduleServeQuery.getPeriod().getEndTime() > storeTechnician.getLatestScheduledTimeMills()) { if (storeTechnician.getLatestScheduledTimeEnable() != 1 && scheduleServeQuery.getPeriod().getEndTime() > storeTechnician.getLatestScheduledTimeMills()){
//未勾选 pass = false;
bool = false;
} }
} }
else if (period.conflict(scheduleServeQuery.getPeriod())) { else if(pass && scheduleServeQuery.getPeriod().getStartTime() > storeTechnician.getWorkEndTime()){
bool = false; pass = false;
} }
if(!pass)
bool = false;
} }
} }
......
...@@ -30,11 +30,22 @@ public class Period implements Serializable { ...@@ -30,11 +30,22 @@ public class Period implements Serializable {
public Period() { public Period() {
} }
/**
* this 包含 period
* @param period
* @return
*/
public boolean in(Period period) { public boolean in(Period period) {
return period.getEndTime() >= endTime return period.getEndTime() >= endTime
&& period.getStartTime() <= startTime; && period.getStartTime() <= startTime;
} }
/**
* this 包含 datetime
* @param datetime
* @return
*/
public boolean in(long datetime) { public boolean in(long datetime) {
return datetime >= startTime return datetime >= startTime
...@@ -50,6 +61,11 @@ public class Period implements Serializable { ...@@ -50,6 +61,11 @@ public class Period implements Serializable {
} }
/**
* 冲突
* @param period
* @return
*/
public boolean conflict(Period period) { public boolean conflict(Period period) {
return (startTime < period.getEndTime() && startTime > period.getStartTime()) return (startTime < period.getEndTime() && startTime > period.getStartTime())
......
...@@ -29,6 +29,12 @@ public class StoreTechnicianPeriod implements Serializable { ...@@ -29,6 +29,12 @@ public class StoreTechnicianPeriod implements Serializable {
long workEndTime; long workEndTime;
/** /**
* 美甲师休息时间
*/
@JsonIgnore
Period breakTime;
/**
* 超过最晚时间是否可约 * 超过最晚时间是否可约
*/ */
@JsonIgnore @JsonIgnore
...@@ -61,7 +67,7 @@ public class StoreTechnicianPeriod implements Serializable { ...@@ -61,7 +67,7 @@ public class StoreTechnicianPeriod implements Serializable {
} }
public StoreTechnicianPeriod(List<Period> periodList, StoreTechnician storeTechnician, long latestScheduledTimeMills, Integer latestScheduledTimeEnable, long workEndTime) { public StoreTechnicianPeriod(List<Period> periodList, StoreTechnician storeTechnician, long latestScheduledTimeMills, Integer latestScheduledTimeEnable, long workEndTime, Period breakTime) {
this.periodList = periodList; this.periodList = periodList;
this.technicianId = storeTechnician.getId(); this.technicianId = storeTechnician.getId();
this.name = storeTechnician.getName(); this.name = storeTechnician.getName();
...@@ -71,6 +77,7 @@ public class StoreTechnicianPeriod implements Serializable { ...@@ -71,6 +77,7 @@ public class StoreTechnicianPeriod implements Serializable {
this.latestScheduledTimeMills = latestScheduledTimeMills; this.latestScheduledTimeMills = latestScheduledTimeMills;
this.latestScheduledTimeEnable = latestScheduledTimeEnable; this.latestScheduledTimeEnable = latestScheduledTimeEnable;
this.workEndTime = workEndTime; this.workEndTime = workEndTime;
this.breakTime = breakTime;
} }
} }
...@@ -29,6 +29,6 @@ public class QCloudSmsServiceImplTest { ...@@ -29,6 +29,6 @@ public class QCloudSmsServiceImplTest {
@Test @Test
public void sendBindSmsCode() { public void sendBindSmsCode() {
smsService.sendBindSmsCode("13272036791", "123456"); smsService.sendBindSmsCode("13272036791", "123456",1);
} }
} }
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