|
@@ -36,6 +36,7 @@ import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
+import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
@@ -77,6 +78,35 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
|
|
|
return new MyPage(mapper.selectList(model));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<CheckJob> getModelListByDTO(CheckJobDTO model) {
|
|
|
+ if (model.getFilter() != null && DataFilterTypeEnum.SELF.getValue() == model.getFilter().intValue()) {
|
|
|
+ UserInfo userInfo = SecurityUtils.getUserInfo();
|
|
|
+ model.setCheckUserId(userInfo.getUserId());
|
|
|
+ }
|
|
|
+ if(model.getSearchMonth() != null){
|
|
|
+ LocalDate firstDay = model.getSearchMonth().with(TemporalAdjusters.firstDayOfMonth());
|
|
|
+ LocalDate lastDay = model.getSearchMonth().with(TemporalAdjusters.lastDayOfMonth());
|
|
|
+ LocalTime.of(0,0,0);
|
|
|
+ //获取月的第一天0时0分0秒
|
|
|
+ LocalDateTime firstDayTime = LocalDateTime.of(firstDay, LocalTime.of(0,0,0));
|
|
|
+ //获取月的第一天0时0分0秒
|
|
|
+ LocalDateTime lastDayTime = LocalDateTime.of(lastDay, LocalTime.of(23,59,59));
|
|
|
+ model.setSearchStartTime(firstDayTime);
|
|
|
+ model.setSearchEndTime(lastDayTime);
|
|
|
+ }
|
|
|
+ if(model.getSearchDay() != null){
|
|
|
+ //获取月的第一天0时0分0秒
|
|
|
+ LocalDateTime firstDayTime = LocalDateTime.of(model.getSearchDay(), LocalTime.of(0,0,0));
|
|
|
+ //获取月的第一天0时0分0秒
|
|
|
+ LocalDateTime lastDayTime = LocalDateTime.of(model.getSearchDay(), LocalTime.of(59,59,59));
|
|
|
+ model.setSearchStartTime(firstDayTime);
|
|
|
+ model.setSearchEndTime(lastDayTime);
|
|
|
+ }
|
|
|
+ List<CheckJobVO> voList = mapper.selectList(model);
|
|
|
+ return BeanConverterUtil.copyListProperties(voList, CheckJob.class);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public AbstractPageResultBean<CheckJob> selectPageInfo(CheckJobDTO model, int pageNum, int pageSize) {
|
|
|
if (model.getFilter() != null && DataFilterTypeEnum.SELF.getValue() == model.getFilter().intValue()) {
|
|
@@ -233,7 +263,7 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
|
|
|
|
|
|
// 查询每个标准是否有已经存在未执行的任务,如果有则不生成,否则直接生成。
|
|
|
Weekend<CheckJob> weekend = new Weekend<>(CheckJob.class);
|
|
|
- weekend.weekendCriteria().andEqualTo(CheckJob::getStatus, CheckJobStatusEnum.NOT_EXECUTE.getValue());
|
|
|
+ weekend.weekendCriteria().andNotEqualTo(CheckJob::getStatus, CheckJobStatusEnum.FINISHED.getValue());
|
|
|
List<CheckJob> checkJobs = mapper.selectByExample(weekend);
|
|
|
for(CheckStandard standard: standardList){
|
|
|
if(!CheckPlanPeriodTypeEnum.MILES.getValue().equals(standard.getPeriodType()) && !CheckPlanPeriodTypeEnum.TAISHI.getValue().equals(standard.getPeriodType()) ){
|
|
@@ -246,6 +276,7 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
|
|
|
if(!find){
|
|
|
CheckJob checkJob = new CheckJob();
|
|
|
checkJob.setSbId(standard.getSbId());
|
|
|
+ checkJob.setStandardHours(standard.getStandardHours());
|
|
|
checkJob.setStatus(CheckJobStatusEnum.NOT_EXECUTE.getValue());
|
|
|
// 计算计划开始时间和结束时间
|
|
|
calcTime(checkJob, currentDate, standard);
|
|
@@ -455,24 +486,35 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
|
|
|
}
|
|
|
private void calcTime(CheckJob checkJob, LocalDateTime currentDate, CheckStandard checkStandard) {
|
|
|
LocalDate endDate = null;
|
|
|
- checkJob.setStartTime(currentDate.toLocalDate());
|
|
|
+ //checkJob.setStartTime(currentDate.toLocalDate());
|
|
|
+
|
|
|
+ // 查询上次任务生成时间
|
|
|
+ CheckJobDTO job = new CheckJobDTO();
|
|
|
+ job.setSbId(checkJob.getSbId());
|
|
|
+ job.setStandardId(checkJob.getStandardId());
|
|
|
+ CheckJobVO vo = mapper.selectLastJob(job);
|
|
|
+
|
|
|
+ LocalDateTime localDateTime = currentDate;
|
|
|
+ if(vo != null){
|
|
|
+ localDateTime = vo.getActualEndTime();
|
|
|
+ }
|
|
|
if (CheckPlanPeriodTypeEnum.DAY.getValue().equals(checkStandard.getPeriodType())) {
|
|
|
- endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.DAYS);
|
|
|
+ endDate = DateUtils.plus(localDateTime.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.DAYS);
|
|
|
}
|
|
|
if (CheckPlanPeriodTypeEnum.WEEK.getValue().equals(checkStandard.getPeriodType())) {
|
|
|
- endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod() * 7, ChronoUnit.DAYS);
|
|
|
+ endDate = DateUtils.plus(localDateTime.toLocalDate(), checkStandard.getPeriod() * 7, ChronoUnit.DAYS);
|
|
|
}
|
|
|
if (CheckPlanPeriodTypeEnum.MONTH.getValue().equals(checkStandard.getPeriodType())) {
|
|
|
- endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.MONTHS);
|
|
|
+ endDate = DateUtils.plus(localDateTime.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.MONTHS);
|
|
|
}
|
|
|
if (CheckPlanPeriodTypeEnum.SEASON.getValue().equals(checkStandard.getPeriodType())) {
|
|
|
- endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod() * 3, ChronoUnit.MONTHS);
|
|
|
+ endDate = DateUtils.plus(localDateTime.toLocalDate(), checkStandard.getPeriod() * 3, ChronoUnit.MONTHS);
|
|
|
}
|
|
|
if (CheckPlanPeriodTypeEnum.YEAR.getValue().equals(checkStandard.getPeriodType())) {
|
|
|
- endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.YEARS);
|
|
|
+ endDate = DateUtils.plus(localDateTime.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.YEARS);
|
|
|
}
|
|
|
endDate = DateUtils.plus(endDate, -1, ChronoUnit.DAYS);
|
|
|
- checkJob.setEndTime(endDate);
|
|
|
+ checkJob.setStartTime(endDate);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -506,6 +548,7 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
|
|
|
CheckJob checkJob = mapper.selectByPrimaryKey(dto.getId());
|
|
|
checkJob.setStatus(CheckJobStatusEnum.FINISHED.getValue());
|
|
|
checkJob.setActualEndTime(now);
|
|
|
+ checkJob.setRealHours(DateUtils.getDurationMinutes(checkJob.getActualStartTime(), checkJob.getActualEndTime()) + "");
|
|
|
UserInfo userInfo = SecurityUtils.getUser().getUserInfo();
|
|
|
checkJob.setUpdateTime(now);
|
|
|
checkJob.setUpdateUserId(userInfo.getUserId());
|