| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | |
| | | import com.doumee.dao.business.YwPatrolTaskMapper; |
| | | import com.doumee.dao.business.YwPatrolTaskRecordMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.SystemUserMapper; |
| | | import com.doumee.dao.system.join.NoticesJoinMapper; |
| | | import com.doumee.dao.system.model.Notices; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.business.YwPatrolSchemeService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | @Autowired |
| | | private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper; |
| | | @Autowired |
| | | private SystemUserMapper systemUserMapper; |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | @Autowired |
| | | private NoticesJoinMapper noticesJoinMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | |
| | | this.createTask(schemeDate,ywPatrolScheme); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void timerAuto(){ |
| | | List<YwPatrolScheme> ywPatrolSchemeList = ywPatrolSchemeMapper.selectList(new QueryWrapper<YwPatrolScheme>().lambda() |
| | | .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO) |
| | | .eq(YwPatrolScheme::getStatus,Constants.ZERO) |
| | | .apply(" START_DATE <= now() and END_DATE>= now() ") |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolSchemeList)){ |
| | | for (YwPatrolScheme ywPatrolScheme:ywPatrolSchemeList) { |
| | | this.createTask(DateUtil.getXDayAfterDate(new Date(),2),ywPatrolScheme); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据日期生成任务 |
| | |
| | | ywPatrolTaskRecordList.add(ywPatrolTaskRecord); |
| | | } |
| | | ywPatrolTaskRecordMapper.insert(ywPatrolTaskRecordList); |
| | | |
| | | if(StringUtils.isNotBlank(ywPatrolScheme.getUserIds())){ |
| | | String [] userIds = ywPatrolScheme.getUserIds().split(","); |
| | | List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda().in(SystemUser::getId,userIds)); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemUserList)){ |
| | | List<String> names = systemUserList.stream().filter(i->StringUtils.isNotBlank(i.getRealname())).map(i->i.getRealname()).collect(Collectors.toList()); |
| | | for (SystemUser systemUser:systemUserList) { |
| | | //添加待办信息 |
| | | Notices notices = new Notices(); |
| | | notices.setCreateDate(new Date()); |
| | | notices.setCreator(ywPatrolScheme.getCreator()); |
| | | notices.setIsdeleted(Constants.ZERO); |
| | | notices.setParam1(DateUtil.formatDate(ywPatrolTask.getStartDate(),"yyyy-MM-dd")); |
| | | notices.setTitle("巡检任务待办"); |
| | | notices.setContent("["+ywPatrolTask.getCode()+"]将在["+notices.getParam1()+"]进行巡检,请按时执行"); |
| | | notices.setObjId(ywPatrolTask.getId()); |
| | | notices.setObjType(Constants.ONE); |
| | | notices.setType(notices.getObjType()); |
| | | notices.setUserId(Integer.valueOf(systemUser.getId())); |
| | | notices.setStatus(Constants.ZERO); |
| | | //整理json数据 |
| | | Map<String,Object> jsonMap = new HashMap<>(); |
| | | jsonMap.put("key1", ywPatrolScheme.getTitle()); |
| | | jsonMap.put("key2", DateUtil.getFomartDate(ywPatrolTask.getStartDate(),"yyyy-MM-dd")); |
| | | jsonMap.put("key3", DateUtil.getFomartDate(ywPatrolTask.getStartDate(),"HH:mm") + "-" + DateUtil.getFomartDate(ywPatrolTask.getEndDate(),"HH:mm")); |
| | | jsonMap.put("key4", StringUtils.join(names , "、")); |
| | | notices.setParam2(JSONObject.toJSONString(jsonMap)); |
| | | notices.setParam3(Constants.ZERO+""); |
| | | noticesJoinMapper.insert(notices); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void deleteById(Integer id, LoginUserInfo user) { |
| | | //判断是否有进行中或已超期的任务 |
| | | if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda() |
| | | .eq(YwPatrolTask::getSchemeId,id) |
| | | .in(YwPatrolTask::getStatus,Constants.ONE,Constants.THREE,Constants.TWO) |
| | | )>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在进行中/已完成的任务,无法进行删除"); |
| | | } |
| | | if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda() |
| | | .eq(YwPatrolTask::getSchemeId,id) |
| | | .eq(YwPatrolTask::getStatus,Constants.ZERO) |
| | | .le(YwPatrolTask::getEndDate,"now()") |
| | | )>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在已超期的任务,无法进行删除"); |
| | | } |
| | | ywPatrolSchemeMapper.deleteById(id); |
| | | } |
| | | |
| | |
| | | ywPatrolScheme.setEditDate(new Date()); |
| | | ywPatrolScheme.setEditor(loginUserInfo.getId()); |
| | | ywPatrolSchemeMapper.updateById(ywPatrolScheme); |
| | | this.createThreeDaysData(ywPatrolScheme); |
| | | } |
| | | |
| | | @Override |
| | |
| | | YwPatrolScheme model = pageWrap.getModel(); |
| | | queryWrapper.selectAll(YwPatrolScheme.class) |
| | | .select(" t2.realName as createUserName ") |
| | | .select(" t1.realName as userName ") |
| | | .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolScheme::getUserIds) |
| | | .leftJoin(" system_user t2 on t.creator = t2.id ") |
| | | .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO) |
| | | .like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle()) |
| | | //查询有时段交集的数据 |
| | | /* .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())) |
| | |
| | | IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper); |
| | | for (YwPatrolScheme ywPatrolScheme:iPage.getRecords()) { |
| | | this.getSchemeStatus(ywPatrolScheme); |
| | | //巡检人员 |
| | | this.getUserNames(ywPatrolScheme); |
| | | } |
| | | return PageData.from(iPage); |
| | | } |
| | | |
| | | |
| | | public void getUserNames(YwPatrolScheme ywPatrolScheme){ |
| | | if(Objects.nonNull(ywPatrolScheme)&&StringUtils.isNotBlank(ywPatrolScheme.getUserIds())){ |
| | | List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda() |
| | | .apply(" find_in_set(id,'"+ywPatrolScheme.getUserIds()+"') ") |
| | | ); |
| | | String userName = String.join(",",systemUserList.stream().map(i->i.getRealname()).collect(Collectors.toList())); |
| | | ywPatrolScheme.setUserName(userName); |
| | | } |
| | | } |
| | | |
| | | |
| | | //获取状态 |
| | | public void getSchemeStatus(YwPatrolScheme ywPatrolScheme){ |
| | |
| | | ywPatrolScheme.setTimeOutTaskNum(Constants.ZERO); |
| | | return; |
| | | } |
| | | |
| | | //过滤数据是不是全部未开始 |
| | | if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)) |
| | | .collect(Collectors.toList()).size(),ywPatrolTaskList.size())){ |
| | | ywPatrolScheme.setSchemeStatus(Constants.ZERO); |
| | | ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis()) |
| | | .collect(Collectors.toList()).size()); |
| | | return; |
| | | } |
| | | |
| | | //过滤数据是否存在进行中的 |
| | | if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()>Constants.ZERO){ |
| | | if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)||Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size()>Constants.ZERO){ |
| | | ywPatrolScheme.setSchemeStatus(Constants.ONE); |
| | | ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis()) |
| | | .collect(Collectors.toList()).size()); |
| | | return; |
| | | } |
| | | |
| | | //过滤数据是不是全部未开始 |
| | | if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size(),ywPatrolTaskList.size())){ |
| | | ywPatrolScheme.setSchemeStatus(Constants.ZERO); |
| | | ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis()) |
| | | .collect(Collectors.toList()).size()); |
| | | return; |
| | | } |
| | | //过滤数据是不是全部已完成 |
| | | if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size() |
| | | ,ywPatrolTaskList.size())){ |