| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.*; |
| | |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public Integer create(YwPatrolScheme ywPatrolScheme) { |
| | | if(Objects.isNull(ywPatrolScheme) |
| | | || StringUtils.isBlank(ywPatrolScheme.getTitle()) |
| | |
| | | ||Objects.isNull(ywPatrolScheme.getStartDate()) |
| | | ||Objects.isNull(ywPatrolScheme.getEndDate()) |
| | | ||Objects.isNull(ywPatrolScheme.getCircleType()) |
| | | ||StringUtils.isBlank(ywPatrolScheme.getStartTime()) |
| | | ||StringUtils.isBlank(ywPatrolScheme.getEndTime()) |
| | | || (!Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ZERO) &&StringUtils.isBlank(ywPatrolScheme.getCircleDays())) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | if(StringUtils.isBlank(ywPatrolScheme.getStartTime())){ |
| | | ywPatrolScheme.setStartTime("00:00:00"); |
| | | } |
| | | if(StringUtils.isBlank(ywPatrolScheme.getEndTime())){ |
| | | ywPatrolScheme.setEndTime("23:59:59"); |
| | | } |
| | | LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo(); |
| | | ywPatrolScheme.setCreateDate(new Date()); |
| | |
| | | ywPatrolScheme.setCode(this.getNextCode()); |
| | | ywPatrolSchemeMapper.insert(ywPatrolScheme); |
| | | |
| | | this.createThreeDaysData(ywPatrolScheme,loginUserInfo); |
| | | this.createThreeDaysData(ywPatrolScheme); |
| | | return ywPatrolScheme.getId(); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | |
| | | public void createThreeDaysData(YwPatrolScheme ywPatrolScheme,LoginUserInfo loginUserInfo){ |
| | | public void createThreeDaysData(YwPatrolScheme ywPatrolScheme){ |
| | | //循环生成三天内的数据 |
| | | for (int i = 0; i < 3; i++) { |
| | | Date schemeDate = DateUtil.getXDayAfterDate(new Date(),i); |
| | | this.createTask(schemeDate,ywPatrolScheme,loginUserInfo); |
| | | Date schemeDate = DateUtil.getXDayAfterDate( |
| | | DateUtil.StringToDate( |
| | | DateUtil.getDate(new Date(),"yyyy-MM-dd"),"yyyy-MM-dd"),i); |
| | | this.createTask(schemeDate,ywPatrolScheme); |
| | | } |
| | | } |
| | | |
| | |
| | | * @param schemeDate |
| | | * @param ywPatrolScheme |
| | | */ |
| | | public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme,LoginUserInfo loginUserInfo){ |
| | | if(ywPatrolScheme.getStartDate().getTime() > schemeDate.getTime() |
| | | || ywPatrolScheme.getEndDate().getTime() < schemeDate.getTime() ){ |
| | | public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme){ |
| | | if(!(ywPatrolScheme.getStartDate().getTime() <= schemeDate.getTime() |
| | | && ywPatrolScheme.getEndDate().getTime() >= schemeDate.getTime()) ){ |
| | | return; |
| | | } |
| | | if(Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ONE)){ |
| | |
| | | return; |
| | | } |
| | | List<String> weeks = Arrays.asList(ywPatrolScheme.getCircleDays().split(",")); |
| | | String weekStr = weeks.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),week.getNumber())).findFirst().get(); |
| | | if(StringUtils.isBlank(weekStr)){ |
| | | if(weeks.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),week.getNumber())).collect(Collectors.toList()).size()<=Constants.ZERO){ |
| | | return; |
| | | } |
| | | }else{ |
| | | |
| | | }else if(Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.TWO)){ |
| | | //每月根据日期生成 根据日期获取是哪天 |
| | | List<String> days = Arrays.asList(ywPatrolScheme.getCircleDays().split(",")); |
| | | String dayStr = DateUtil.getFomartDate(schemeDate,"dd"); |
| | | if(Objects.isNull(days.stream().filter(i->StringUtils.equals(i,dayStr)).findFirst().get())){ |
| | | Integer dayStr = Integer.valueOf(DateUtil.getFomartDate(schemeDate,"dd")); |
| | | if(days.stream().filter(i->i.equals(dayStr.toString())).collect(Collectors.toList()).size()<=Constants.ZERO){ |
| | | return; |
| | | }; |
| | | } |
| | | } |
| | | String schemeDateStr = DateUtil.getDate(schemeDate,"yyyy-MM-dd"); |
| | | //查询当天是否生成过数据 |
| | |
| | | String nextCode = StringUtils.leftPad(codeSn.toString(),3,"0"); |
| | | YwPatrolTask ywPatrolTask = new YwPatrolTask(); |
| | | ywPatrolTask.setCreateDate(new Date()); |
| | | ywPatrolTask.setCreator(loginUserInfo.getId()); |
| | | ywPatrolTask.setCreator(ywPatrolScheme.getCreator()); |
| | | ywPatrolTask.setIsdeleted(Constants.ZERO); |
| | | ywPatrolTask.setStatus(Constants.patrolTaskStatus.waitStart); |
| | | ywPatrolTask.setSchemeId(ywPatrolScheme.getId()); |
| | |
| | | //生成任务数据 |
| | | YwPatrolTaskRecord ywPatrolTaskRecord = new YwPatrolTaskRecord(); |
| | | ywPatrolTaskRecord.setCreateDate(new Date()); |
| | | ywPatrolTaskRecord.setCreator(loginUserInfo.getId()); |
| | | ywPatrolTaskRecord.setCreator(ywPatrolScheme.getCreator()); |
| | | ywPatrolTaskRecord.setIsdeleted(Constants.ZERO); |
| | | ywPatrolTaskRecord.setStatus(Constants.ZERO); |
| | | ywPatrolTaskRecord.setSchemeId(ywPatrolScheme.getId()); |
| | |
| | | ywPatrolScheme.setEditor(loginUserInfo.getId()); |
| | | ywPatrolSchemeMapper.updateById(ywPatrolScheme); |
| | | if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){ |
| | | this.createThreeDaysData(ywPatrolScheme,loginUserInfo); |
| | | this.createThreeDaysData(ywPatrolScheme); |
| | | } |
| | | } |
| | | |
| | |
| | | .leftJoin(" system_user t2 on t.creator = t2.id ") |
| | | .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO) |
| | | .like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle()) |
| | | .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())) |
| | | .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())) |
| | | //查询有时段交集的数据 |
| | | /* .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()), |
| | | " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' or t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' " |
| | | )*/ |
| | | .ge( model.getStartDate()!=null,YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())) |
| | | .le(Objects.nonNull(model.getEndDate()),YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())) |
| | | .ge(Objects.nonNull(model.getStartDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getStartDateSec())) |
| | | .le(Objects.nonNull(model.getEndDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDateSec())) |
| | | .orderByDesc(YwPatrolScheme::getCreateDate) |
| | | ; |
| | | IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper); |