|  |  |  | 
|---|
|  |  |  | 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()) | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | this.createTask(schemeDate,ywPatrolScheme); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param schemeDate | 
|---|
|  |  |  | * @param ywPatrolScheme | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme,LoginUserInfo loginUserInfo){ | 
|---|
|  |  |  | public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme){ | 
|---|
|  |  |  | if(ywPatrolScheme.getStartDate().getTime() > schemeDate.getTime() | 
|---|
|  |  |  | || ywPatrolScheme.getEndDate().getTime() < schemeDate.getTime() ){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | 
|---|
|  |  |  | //每月根据日期生成 根据日期获取是哪天 | 
|---|
|  |  |  | 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())){ | 
|---|
|  |  |  | Optional<String>  optional = days.stream().filter(i->StringUtils.equals(i,dayStr)).findAny(); | 
|---|
|  |  |  | if(Objects.isNull(optional)){ | 
|---|
|  |  |  | 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 <= '"+Utils.Date.getStart(pageWrap.getModel().getEndDate())+"' and t.END_DATE >= '"+Utils.Date.getStart(pageWrap.getModel().getStartDate())+"' " | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | //                .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())) | 
|---|
|  |  |  | .orderByDesc(YwPatrolScheme::getCreateDate) | 
|---|
|  |  |  | ; | 
|---|
|  |  |  | IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper); | 
|---|