课程自动复制批处理
This commit is contained in:
92
oms/src/main/java/com/ydd/oms/task/CopyLessonTask.java
Normal file
92
oms/src/main/java/com/ydd/oms/task/CopyLessonTask.java
Normal file
@@ -0,0 +1,92 @@
|
||||
package com.ydd.oms.task;
|
||||
|
||||
import com.enums.VenueTypeEnum;
|
||||
import com.sv.entity.Venue;
|
||||
import com.sv.entity.VenueLesson;
|
||||
import com.sv.service.api.util.DateUtilCard;
|
||||
import com.sv.service.oms.VenueLessonService;
|
||||
import com.sv.service.oms.VenueService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Controller - 修改用户会员卡
|
||||
*
|
||||
* @author lihong
|
||||
* @since 2018-08-25
|
||||
*/
|
||||
@Component
|
||||
public class CopyLessonTask {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(CopyLessonTask.class);
|
||||
|
||||
@Resource
|
||||
private VenueService venueService;
|
||||
@Resource
|
||||
private VenueLessonService venueLessonService;
|
||||
|
||||
private static final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
|
||||
|
||||
/**
|
||||
* 每周一九点
|
||||
*/
|
||||
@Scheduled(cron = "0 */1 * * * ?")
|
||||
public void execute(){
|
||||
logger.info("开始执行拷贝课程批处理");
|
||||
LocalTime time = LocalTime.now();
|
||||
LocalDate date = LocalDate.now();
|
||||
logger.info(time.toString());
|
||||
logger.info(date.toString());
|
||||
int cWeek = date.getDayOfWeek().getValue();
|
||||
List<Venue> venueList = venueService.findAlls();
|
||||
for (Venue venue : venueList) {
|
||||
if (VenueTypeEnum.BASKETBALL.value != venue.getType()
|
||||
&& venue.getCopyWeek() != null && cWeek == venue.getCopyWeek()){
|
||||
// 非篮球馆有课程
|
||||
LocalTime copyTime = venue.getCopyTime();
|
||||
if (checkTime(time,copyTime)){
|
||||
LocalDate startDate = date.plusDays(-7);
|
||||
LocalDate endDate = date.plusDays(-1);
|
||||
String startTime = dtf.format(startDate);
|
||||
String endTime = dtf.format(endDate);
|
||||
List<VenueLesson> allForCopy = venueLessonService.findAllForCopy(startTime, endTime);
|
||||
if (allForCopy!= null && allForCopy.size()>0){
|
||||
logger.info("需要操作的课程数为:" + allForCopy.size());
|
||||
int count = 0;
|
||||
for (VenueLesson venueLesson : allForCopy) {
|
||||
count ++;
|
||||
Date copyDate = DateUtilCard.addDays(venueLesson.getDate(), 7);
|
||||
venueLessonService.copy(venueLesson.getId(),copyDate,copyDate);
|
||||
}
|
||||
logger.info("拷贝的课程数量为:" + count);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkTime(LocalTime time, LocalTime copyTime) {
|
||||
int cHour = time.getHour();
|
||||
int cMinute = time.getMinute();
|
||||
if (copyTime == null){
|
||||
copyTime = LocalTime.parse("00:00");
|
||||
}
|
||||
int sHour = copyTime.getHour();
|
||||
int sMinute = copyTime.getMinute();
|
||||
if (cHour == sHour && cMinute == sMinute){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
23
oms/src/test/java/com/ydd/oms/task/CopyLessonTaskTest.java
Normal file
23
oms/src/test/java/com/ydd/oms/task/CopyLessonTaskTest.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.ydd.oms.task;
|
||||
|
||||
import com.OmsApplication;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(classes={OmsApplication.class})
|
||||
public class CopyLessonTaskTest {
|
||||
|
||||
@Resource
|
||||
CopyLessonTask copyLessonTask;
|
||||
|
||||
@Test
|
||||
public void testTask(){
|
||||
copyLessonTask.execute();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user