From e6b7d6af8f9acf79f32fd386a9cead2d24ae2f9a Mon Sep 17 00:00:00 2001 From: wl <173@qq.com> Date: 星期五, 30 十二月 2022 15:04:55 +0800 Subject: [PATCH] fix: 栏目订阅 --- ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java | 158 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 142 insertions(+), 16 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java index 24cce4a..0b5789c 100644 --- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java +++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java @@ -8,14 +8,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.bo.AdminUserDetails; -import com.ycl.controller.video.common.constant.BaseCaseStatus; -import com.ycl.controller.video.common.constant.StepName; -import com.ycl.controller.video.common.util.DateUtil; -import com.ycl.controller.video.common.util.UtilNumber; +import com.ycl.common.constant.BaseCaseStatus; +import com.ycl.common.constant.StepName; +import com.ycl.common.util.DateUtil; +import com.ycl.common.util.UtilNumber; import com.ycl.dto.caseHandler.DispatchInfoParam; import com.ycl.dto.caseHandler.QueryForViolationParam; import com.ycl.dto.casePool.IllegalBuildingParam; +import com.ycl.dto.casePool.VideoInspectParam; import com.ycl.dto.casePool.ViolationParam; +import com.ycl.dto.cockpitManage.DelayDO; import com.ycl.entity.caseHandler.*; import com.ycl.entity.dict.DataDictionary; import com.ycl.entity.resources.ImageResources; @@ -31,8 +33,10 @@ import com.ycl.service.caseHandler.IViolationsService; import com.ycl.service.video.IVideoAlarmReportService; import com.ycl.vo.casePool.*; -import com.ycl.vo.cockpit.enforcementEvents.EnforcementEventsVO; +import com.ycl.vo.cockpit.enforcementEvents.DelayVO; import com.ycl.vo.cockpit.enforcementEvents.EventVO; +import com.ycl.vo.cockpit.enforcementEvents.StatisticsVO; +import com.ycl.vo.cockpit.enforcementEvents.VideoAndAreaVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -41,6 +45,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.time.Duration; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -250,8 +255,8 @@ if (baseCase.getCategory() == 1) { Map mapV = new HashMap(); mapV.put("id", baseCase.getId()); - Violations violations = violationsMapper.selectCondMap(mapV); - baseCase.setViolations(violations); + ViolationsVO violationsVO = violationsMapper.selectCondMap(mapV); + baseCase.setViolationsVO(violationsVO); } else { IllegalBuilding illegalBuilding = illegalBuildingMapper.selectById(baseCase.getId()); LambdaQueryWrapper<DataDictionary> dict = new LambdaQueryWrapper<>(); @@ -416,17 +421,17 @@ public Map<String, Object> selectCount() { HashMap<String, Object> map = new HashMap<>(); Long review = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getState, 1)); - Long register = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().in(BaseCase::getState, 2,6)); - Long study = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getState, 3)); + Long register = baseCaseMapper.selectRegisterCount(); + Long study = baseCaseMapper.selectStudyCount(); map.put("review", review); - map.put("register",register); - map.put("study",study); + map.put("register", register); + map.put("study", study); return map; } @Override @Transactional(rollbackFor = Exception.class) - public Boolean updateCase(ViolationParam violationParam) { + public Boolean updateCase(VideoInspectParam violationParam) { BaseCase baseCase = new BaseCase(); BeanUtils.copyProperties(violationParam, baseCase); baseCase.setId(violationParam.getBaseId()); @@ -434,7 +439,7 @@ baseCaseMapper.updateById(baseCase); Violations violations = new Violations(); BeanUtils.copyProperties(violationParam, violations); - violations.setId(violations.getId()); + violations.setId(violationParam.getBaseId()); if (violationParam.getState() == 6) { AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); violationParam.setCreateUser(user.getUserId()); @@ -444,9 +449,10 @@ iDispatchHandleService.dispatch(dispatchInfoParam); } if (violationParam.getState() == 2) { - baseCaseService.uploadEvent(violationParam.getBaseId()); +// baseCaseService.uploadEvent(violationParam.getBaseId()); + /// TODO: 2022/12/16 涓婃姤鎺ュ彛鏈疄鐜� } - return violationsMapper.insert(violations) == 1 ? true : false; + return violationsMapper.updateById(violations) == 1 ? true : false; } @Override @@ -471,6 +477,126 @@ @Override public List<EventVO> selectEventList(String beginTime, String endTime) { - return baseCaseMapper.selectEventList(beginTime,endTime); + return baseCaseMapper.selectEventList(beginTime, endTime); + } + + @Override + public List<VideoAndAreaVO> areaCount() { + List<VideoAndAreaVO> areaCountList = baseCaseMapper.areaCount(); + Long allCount = baseCaseMapper.selectCount(new LambdaQueryWrapper<>()); + areaCountList.stream().forEach(item -> item.setRatio(new BigDecimal(item.getCount() * 1.0 / allCount).setScale(2, BigDecimal.ROUND_HALF_UP))); + return areaCountList; + } + + @Override + public List<DelayVO> selectDelayList() { + List<DelayDO> delayDOS = baseCaseMapper.selectDelayVOList(); + ArrayList<DelayVO> delayVOS = new ArrayList<>(); + delayDOS.stream().forEach(item -> { + DelayVO delayVO = new DelayVO(); + delayVO.setDescription(item.getDescription()); + delayVO.setCode(item.getCode()); + Duration between; + if (item.getEndTime() != null) { + between = Duration.between(item.getEndTime(), item.getLimitTime()); + } else { + between = Duration.between(LocalDateTime.now(), item.getLimitTime()); + } + if (between.isNegative()) { + delayVO.setDuration(between.toMinutes()); + delayVOS.add(delayVO); + } + }); + return delayVOS; + } + + @Override + public Map<String, Object> statistics() { + Map<String, Object> map = new HashMap<>(); + Long reportCount = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getState, BaseCaseStatus.REPORT)); + StatisticsVO report = new StatisticsVO(); + report.setCount(reportCount); + ArrayList<Integer> reportState = new ArrayList<>(); + reportState.add(BaseCaseStatus.REPORT); + Long reportLastMonthCount = baseCaseMapper.selectLastMonthCount(reportState); + Long reportRecentlyMonthCount = baseCaseMapper.selectRecentlyMonthCount(reportState); + Double v = (reportRecentlyMonthCount - reportLastMonthCount) * 1.0 / reportLastMonthCount; + if (reportLastMonthCount == 0) { + report.setRatio(null); + } else { + report.setRatio(new BigDecimal(v).setScale(2, BigDecimal.ROUND_HALF_UP).abs()); + } + if (v < 0) { + report.setUp(false); + } else { + report.setUp(true); + } + + Long disposeCount = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().in(BaseCase::getState, BaseCaseStatus.DISPATCH, BaseCaseStatus.DISPOSE, BaseCaseStatus.CHECK, BaseCaseStatus.CLOSING_REGISTER)); + StatisticsVO dispose = new StatisticsVO(); + dispose.setCount(disposeCount); + ArrayList<Integer> disposeState = new ArrayList<>(); + disposeState.add(BaseCaseStatus.DISPATCH); + disposeState.add(BaseCaseStatus.DISPOSE); + disposeState.add(BaseCaseStatus.CHECK); + disposeState.add(BaseCaseStatus.CLOSING_REGISTER); + Long disposeLastMonthCount = baseCaseMapper.selectLastMonthCount(disposeState); + Long disposeRecentlyMonthCount = baseCaseMapper.selectRecentlyMonthCount(disposeState); + Double v1 = (disposeRecentlyMonthCount - disposeLastMonthCount) * 1.0 / disposeLastMonthCount; + if (disposeLastMonthCount == 0) { + dispose.setRatio(null); + } else { + dispose.setRatio(new BigDecimal(v1).setScale(2, BigDecimal.ROUND_HALF_UP).abs()); + } + if (v1 < 0) { + dispose.setUp(false); + } else { + dispose.setUp(true); + } + + StatisticsVO onTimeDispose = new StatisticsVO(); + onTimeDispose.setCount(baseCaseMapper.selectOnTimeCaseCount()); + Long onTimeCaseLastMonthCount = baseCaseMapper.selectOnTimeCaseLastMonthCount(); + Long timeCaseRecentlyMonthCount = baseCaseMapper.selectOnTimeCaseRecentlyMonthCount(); + Double v2 = (timeCaseRecentlyMonthCount - onTimeCaseLastMonthCount) * 1.0 / onTimeCaseLastMonthCount; + if (onTimeCaseLastMonthCount == 0) { + onTimeDispose.setRatio(null); + } else { + onTimeDispose.setRatio(new BigDecimal(v2).setScale(2, BigDecimal.ROUND_HALF_UP).abs()); + } + if (v2 < 0) { + onTimeDispose.setUp(false); + } else { + onTimeDispose.setUp(true); + } + + Long registerCount = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().in(BaseCase::getState, BaseCaseStatus.DISPATCH, BaseCaseStatus.DISPOSE, BaseCaseStatus.CHECK, BaseCaseStatus.CLOSING_REGISTER, BaseCaseStatus.REPORT)); + StatisticsVO register = new StatisticsVO(); + register.setCount(registerCount); + ArrayList<Integer> registerState = new ArrayList<>(); + registerState.add(BaseCaseStatus.DISPATCH); + registerState.add(BaseCaseStatus.DISPOSE); + registerState.add(BaseCaseStatus.CHECK); + registerState.add(BaseCaseStatus.CLOSING_REGISTER); + registerState.add(BaseCaseStatus.REPORT); + Long registerLastMonthCount = baseCaseMapper.selectLastMonthCount(registerState); + Long registerRecentlyMonthCount = baseCaseMapper.selectRecentlyMonthCount(registerState); + System.out.println(disposeRecentlyMonthCount); + Double v3 = (registerRecentlyMonthCount - registerLastMonthCount) * 1.0 / registerLastMonthCount; + if (disposeLastMonthCount == 0) { + register.setRatio(null); + } else { + register.setRatio(new BigDecimal(v3).setScale(2, BigDecimal.ROUND_HALF_UP).abs()); + } + if (v3 < 0) { + register.setUp(false); + } else { + register.setUp(true); + } + map.put("reported", report); + map.put("disposition", dispose); + map.put("dispositionInTime", onTimeDispose); + map.put("register", register); + return map; } } \ No newline at end of file -- Gitblit v1.8.0