From d7dca690cedd12e271f0ee0b9050679d73796f5c Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期一, 06 一月 2025 09:28:10 +0800 Subject: [PATCH] 1 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 85 ++++++++++++++++++++++++++++++++---------- 1 files changed, 65 insertions(+), 20 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 1ddf1ad..375b2f6 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 @@ -26,6 +26,7 @@ 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.*; @@ -51,6 +52,7 @@ 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()) @@ -59,11 +61,15 @@ ||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()); @@ -73,7 +79,7 @@ ywPatrolScheme.setCode(this.getNextCode()); ywPatrolSchemeMapper.insert(ywPatrolScheme); - this.createThreeDaysData(ywPatrolScheme,loginUserInfo); + this.createThreeDaysData(ywPatrolScheme); return ywPatrolScheme.getId(); } @@ -89,22 +95,41 @@ - 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); } } + + + @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(new Date(),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)){ @@ -114,17 +139,17 @@ 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"); //鏌ヨ褰撳ぉ鏄惁鐢熸垚杩囨暟鎹� @@ -150,7 +175,7 @@ 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()); @@ -167,7 +192,7 @@ //鐢熸垚浠诲姟鏁版嵁 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()); @@ -184,6 +209,20 @@ @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); } @@ -237,7 +276,7 @@ ywPatrolScheme.setEditor(loginUserInfo.getId()); ywPatrolSchemeMapper.updateById(ywPatrolScheme); if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){ - this.createThreeDaysData(ywPatrolScheme,loginUserInfo); + this.createThreeDaysData(ywPatrolScheme); } } @@ -281,8 +320,14 @@ .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); -- Gitblit v1.9.3