From a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 06 六月 2025 19:19:34 +0800 Subject: [PATCH] 开发更新 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 424 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 343 insertions(+), 81 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java index 5b4cd7b..cb32343 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java @@ -1,21 +1,40 @@ 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.core.model.PageData; import com.doumee.core.model.PageWrap; +import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; +import com.doumee.core.utils.Week; +import com.doumee.core.utils.redis.RedisUtil; +import com.doumee.dao.business.YwLinePointMapper; import com.doumee.dao.business.YwPatrolSchemeMapper; -import com.doumee.dao.business.model.YwPatrolScheme; +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; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.commons.lang3.StringUtils; 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.List; +import java.util.*; +import java.util.stream.Collectors; /** * 杩愮淮宸℃璁″垝淇℃伅琛⊿ervice瀹炵幇 @@ -27,15 +46,224 @@ @Autowired private YwPatrolSchemeMapper ywPatrolSchemeMapper; + @Autowired + private YwPatrolTaskMapper ywPatrolTaskMapper; + @Autowired + private YwLinePointMapper ywLinePointMapper; + @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}) public Integer create(YwPatrolScheme ywPatrolScheme) { + if(Objects.isNull(ywPatrolScheme) + || StringUtils.isBlank(ywPatrolScheme.getTitle()) + ||Objects.isNull(ywPatrolScheme.getLineId()) + ||StringUtils.isBlank(ywPatrolScheme.getUserIds()) + ||Objects.isNull(ywPatrolScheme.getStartDate()) + ||Objects.isNull(ywPatrolScheme.getEndDate()) + ||Objects.isNull(ywPatrolScheme.getCircleType()) + || (!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.setCreator(loginUserInfo.getId()); + ywPatrolScheme.setIsdeleted(Constants.ZERO); + ywPatrolScheme.setStatus(Constants.ZERO); + ywPatrolScheme.setCode(this.getNextCode()); ywPatrolSchemeMapper.insert(ywPatrolScheme); + + this.createThreeDaysData(ywPatrolScheme); return ywPatrolScheme.getId(); } + public synchronized String getNextCode(){ + String prefix = "P"; + Integer countNum = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.PATROL_SCHEME_CODE_KEY,Integer.class); + countNum = Constants.formatIntegerNum(countNum)+1; + //鏇存柊缂撳瓨 + RedisUtil.addObject(redisTemplate,Constants.RedisKeys.PATROL_SCHEME_CODE_KEY,countNum); + String nextIndex =Integer.toString( countNum ); + return prefix + StringUtils.leftPad(nextIndex,4,"0"); + } + + + + public void createThreeDaysData(YwPatrolScheme ywPatrolScheme){ + //寰幆鐢熸垚涓夊ぉ鍐呯殑鏁版嵁 + for (int i = 0; i < 3; i++) { + Date schemeDate = DateUtil.getXDayAfterDate( + DateUtil.StringToDate( + DateUtil.getDate(new Date(),"yyyy-MM-dd"),"yyyy-MM-dd"),i); + 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); + } + } + } + + + + /** + * 鏍规嵁鏃ユ湡鐢熸垚浠诲姟 + * @param schemeDate + * @param ywPatrolScheme + */ + 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)){ + //姣忓懆鏍规嵁鏃ユ湡鐢熸垚 鏍规嵁鏃ユ湡鑾峰彇鏄懆鍑� + Week week = DateUtil.getWeek(schemeDate); + if(Objects.isNull(week)){ + return; + } + List<String> weeks = Arrays.asList(ywPatrolScheme.getCircleDays().split(",")); + if(weeks.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),week.getNumber())).collect(Collectors.toList()).size()<=Constants.ZERO){ + return; + } + + }else if(Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.TWO)){ + //姣忔湀鏍规嵁鏃ユ湡鐢熸垚 鏍规嵁鏃ユ湡鑾峰彇鏄摢澶� + List<String> days = Arrays.asList(ywPatrolScheme.getCircleDays().split(",")); + 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"); + //鏌ヨ褰撳ぉ鏄惁鐢熸垚杩囨暟鎹� + if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda().eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId()).like(YwPatrolTask::getStartDate,schemeDateStr))>Constants.ZERO){ + return; + }; + YwPatrolTask ywPatrolTaskForCodeSn = ywPatrolTaskMapper.selectOne(new MPJLambdaWrapper<YwPatrolTask>() + .select(" ifnull( max(replace(code,'"+ywPatrolScheme.getCode()+"-','')),0) AS codeSn ") + .eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId()) + .orderByDesc( YwPatrolTask::getId) + .last(" limit 1 ") + ); + Integer codeSn = ywPatrolTaskForCodeSn.getCodeSn(); + + List<YwLinePoint> ywLinePointList = ywLinePointMapper.selectList(new QueryWrapper<YwLinePoint>().lambda() + .eq(YwLinePoint::getLineId,ywPatrolScheme.getLineId()) + .eq(YwLinePoint::getIsdeleted,Constants.ZERO) + .orderByAsc(YwLinePoint::getSortnum)); + if(CollectionUtils.isEmpty(ywLinePointList)){ + return; + } + codeSn = codeSn + 1; + String nextCode = StringUtils.leftPad(codeSn.toString(),3,"0"); + YwPatrolTask ywPatrolTask = new YwPatrolTask(); + ywPatrolTask.setCreateDate(new Date()); + ywPatrolTask.setCreator(ywPatrolScheme.getCreator()); + ywPatrolTask.setIsdeleted(Constants.ZERO); + ywPatrolTask.setStatus(Constants.patrolTaskStatus.waitStart); + ywPatrolTask.setSchemeId(ywPatrolScheme.getId()); + ywPatrolTask.setCircleType(ywPatrolScheme.getCircleType()); + ywPatrolTask.setStartDate(DateUtil.getDateFromString(schemeDateStr +" "+ ywPatrolScheme.getStartTime() +":00")); + ywPatrolTask.setEndDate(DateUtil.getDateFromString(schemeDateStr +" "+ ywPatrolScheme.getEndTime() +":00")); + ywPatrolTask.setDealUserId(ywPatrolScheme.getDealUserId()); + ywPatrolTask.setCode(ywPatrolScheme.getCode() + "-" + nextCode); + ywPatrolTaskMapper.insert(ywPatrolTask); + + List<YwPatrolTaskRecord> ywPatrolTaskRecordList = new ArrayList<>(); + for (int i = 0; i < ywLinePointList.size(); i++) { + YwLinePoint ywLinePoint = ywLinePointList.get(i); + //鐢熸垚浠诲姟鏁版嵁 + YwPatrolTaskRecord ywPatrolTaskRecord = new YwPatrolTaskRecord(); + ywPatrolTaskRecord.setCreateDate(new Date()); + ywPatrolTaskRecord.setCreator(ywPatrolScheme.getCreator()); + ywPatrolTaskRecord.setIsdeleted(Constants.ZERO); + ywPatrolTaskRecord.setStatus(Constants.ZERO); + ywPatrolTaskRecord.setSchemeId(ywPatrolScheme.getId()); + ywPatrolTaskRecord.setPointId(ywLinePoint.getPointId()); + ywPatrolTaskRecord.setTaskId(ywPatrolTask.getId()); + ywPatrolTaskRecord.setDealUserId(ywPatrolScheme.getDealUserId()); + ywPatrolTaskRecord.setSortnum(i+1); + 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); } @@ -55,7 +283,43 @@ @Override public void updateById(YwPatrolScheme ywPatrolScheme) { + if(Objects.isNull(ywPatrolScheme) + || Objects.isNull(ywPatrolScheme.getId()) + || StringUtils.isBlank(ywPatrolScheme.getTitle()) + ||Objects.isNull(ywPatrolScheme.getLineId()) + ||StringUtils.isBlank(ywPatrolScheme.getUserIds()) + ||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); + } + LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo(); + ywPatrolScheme.setEditDate(new Date()); + ywPatrolScheme.setEditor(loginUserInfo.getId()); ywPatrolSchemeMapper.updateById(ywPatrolScheme); + this.createThreeDaysData(ywPatrolScheme); + } + + @Override + public void updateStatus(YwPatrolScheme ywPatrolScheme) { + if(Objects.isNull(ywPatrolScheme) + || Objects.isNull(ywPatrolScheme.getId()) + || Objects.isNull(ywPatrolScheme.getStatus()) + || !(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO) || Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ONE )) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo(); + ywPatrolScheme.setEditDate(new Date()); + ywPatrolScheme.setEditor(loginUserInfo.getId()); + ywPatrolSchemeMapper.updateById(ywPatrolScheme); + if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){ + this.createThreeDaysData(ywPatrolScheme); + } } @Override @@ -88,92 +352,90 @@ @Override public PageData<YwPatrolScheme> findPage(PageWrap<YwPatrolScheme> pageWrap) { IPage<YwPatrolScheme> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); - QueryWrapper<YwPatrolScheme> queryWrapper = new QueryWrapper<>(); + MPJLambdaWrapper<YwPatrolScheme> queryWrapper = new MPJLambdaWrapper<YwPatrolScheme>(); Utils.MP.blankToNull(pageWrap.getModel()); - if (pageWrap.getModel().getId() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getId, pageWrap.getModel().getId()); + YwPatrolScheme model = pageWrap.getModel(); + queryWrapper.selectAll(YwPatrolScheme.class) + .select(" t2.realName as createUserName ") + .leftJoin(" system_user t2 on t.creator = t2.id ") + .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO) + .like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle()) + .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); + for (YwPatrolScheme ywPatrolScheme:iPage.getRecords()) { + this.getSchemeStatus(ywPatrolScheme); + //宸℃浜哄憳 + this.getUserNames(ywPatrolScheme); } - if (pageWrap.getModel().getCreator() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getCreator, pageWrap.getModel().getCreator()); - } - if (pageWrap.getModel().getCreateDate() != null) { - queryWrapper.lambda().ge(YwPatrolScheme::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); - queryWrapper.lambda().le(YwPatrolScheme::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); - } - if (pageWrap.getModel().getEditor() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getEditor, pageWrap.getModel().getEditor()); - } - if (pageWrap.getModel().getEditDate() != null) { - queryWrapper.lambda().ge(YwPatrolScheme::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); - queryWrapper.lambda().le(YwPatrolScheme::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); - } - if (pageWrap.getModel().getIsdeleted() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getIsdeleted, pageWrap.getModel().getIsdeleted()); - } - if (pageWrap.getModel().getTitle() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getTitle, pageWrap.getModel().getTitle()); - } - if (pageWrap.getModel().getRemark() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getRemark, pageWrap.getModel().getRemark()); - } - if (pageWrap.getModel().getStatus() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getStatus, pageWrap.getModel().getStatus()); - } - if (pageWrap.getModel().getSortnum() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getSortnum, pageWrap.getModel().getSortnum()); - } - if (pageWrap.getModel().getLineId() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getLineId, pageWrap.getModel().getLineId()); - } - if (pageWrap.getModel().getUserIds() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getUserIds, pageWrap.getModel().getUserIds()); - } - if (pageWrap.getModel().getDealUserId() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getDealUserId, pageWrap.getModel().getDealUserId()); - } - if (pageWrap.getModel().getDealDate() != null) { - queryWrapper.lambda().ge(YwPatrolScheme::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate())); - queryWrapper.lambda().le(YwPatrolScheme::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate())); - } - if (pageWrap.getModel().getDealInfo() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getDealInfo, pageWrap.getModel().getDealInfo()); - } - if (pageWrap.getModel().getCircleType() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getCircleType, pageWrap.getModel().getCircleType()); - } - if (pageWrap.getModel().getCircleDays() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getCircleDays, pageWrap.getModel().getCircleDays()); - } - if (pageWrap.getModel().getStartDate() != null) { - queryWrapper.lambda().ge(YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())); - queryWrapper.lambda().le(YwPatrolScheme::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate())); - } - if (pageWrap.getModel().getEndDate() != null) { - queryWrapper.lambda().ge(YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())); - queryWrapper.lambda().le(YwPatrolScheme::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate())); - } - if (pageWrap.getModel().getStartTime() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getStartTime, pageWrap.getModel().getStartTime()); - } - if (pageWrap.getModel().getEndTime() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getEndTime, pageWrap.getModel().getEndTime()); - } - if (pageWrap.getModel().getProcessStatus() != null) { - queryWrapper.lambda().eq(YwPatrolScheme::getProcessStatus, pageWrap.getModel().getProcessStatus()); - } - for(PageWrap.SortData sortData: pageWrap.getSorts()) { - if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { - queryWrapper.orderByDesc(sortData.getProperty()); - } else { - queryWrapper.orderByAsc(sortData.getProperty()); - } - } - return PageData.from(ywPatrolSchemeMapper.selectPage(page, queryWrapper)); + 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){ + List<YwPatrolTask> ywPatrolTaskList = ywPatrolTaskMapper.selectList(new QueryWrapper<YwPatrolTask>().lambda() + .eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId()) + .eq(YwPatrolTask::getIsdeleted,Constants.ZERO) + .ne(YwPatrolTask::getStatus,Constants.FOUR) + ); + + if(CollectionUtils.isEmpty(ywPatrolTaskList)){ + ywPatrolScheme.setSchemeStatus(Constants.ZERO); + 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)||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.THREE)).collect(Collectors.toList()).size() + ,ywPatrolTaskList.size())){ + ywPatrolScheme.setSchemeStatus(Constants.TWO); + return; + } + } + + + @Override public long count(YwPatrolScheme ywPatrolScheme) { QueryWrapper<YwPatrolScheme> wrapper = new QueryWrapper<>(ywPatrolScheme); return ywPatrolSchemeMapper.selectCount(wrapper); } + + + + } -- Gitblit v1.9.3