From fd071f321fb967f36cf795fc40b4f2e87e89e69d Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 12 十二月 2022 22:38:24 +0800 Subject: [PATCH] 预警研判 --- ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 150 insertions(+), 15 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 2990dcf..6e80c0d 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,35 +8,44 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.bo.AdminUserDetails; -import com.ycl.common.constant.BaseCaseStatus; -import com.ycl.common.constant.StepName; -import com.ycl.common.util.DateUtil; +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.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.common.ImageResources; import com.ycl.entity.dict.DataDictionary; +import com.ycl.entity.resources.ImageResources; import com.ycl.entity.video.VideoAlarmReport; import com.ycl.exception.ApiException; import com.ycl.mapper.caseHandler.*; -import com.ycl.mapper.common.ImageResourcesMapper; import com.ycl.mapper.dict.DataDictionaryMapper; +import com.ycl.mapper.resources.ImageResourcesMapper; import com.ycl.remote.dto.*; import com.ycl.remote.service.CityPlatformService; import com.ycl.service.caseHandler.IBaseCaseService; +import com.ycl.service.caseHandler.IDispatchHandleService; import com.ycl.service.caseHandler.IViolationsService; import com.ycl.service.video.IVideoAlarmReportService; -import com.ycl.vo.casePool.CasePoolViolationVO; -import com.ycl.vo.casePool.CurrentSitVo; -import com.ycl.vo.casePool.FilesPictureVo; -import com.ycl.vo.casePool.HandlePassVo; +import com.ycl.vo.casePool.*; +import com.ycl.vo.cockpit.enforcementEvents.DelayVO; +import com.ycl.vo.cockpit.enforcementEvents.EventVO; +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; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +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; @@ -59,6 +68,7 @@ private CityPlatformService cityPlatformService; private IViolationsService violationsService; private IVideoAlarmReportService videoAlarmReportService; + @Value("${fdfs.fileUrl}") private String fileUrl; @@ -107,9 +117,18 @@ @Resource PartyInfoMapper partyInfoMapper; + @Resource + UtilNumber utilNumber; + + @Resource + IDispatchHandleService iDispatchHandleService; + + @Resource + IBaseCaseService baseCaseService; + @Override - public String uploadEvent(Integer caseId) { + public String uploadEvent(Long caseId) { BaseCase baseCase = this.getById(caseId); Violations violations = violationsService.getById(caseId); String medias = ""; @@ -196,12 +215,11 @@ stepQuery.eq("name", stepName); WorkflowConfigStep workflowConfigStep = workflowConfigStepMapper.selectOne(stepQuery); - Integer state = 0; DisposeRecord disposeRecord = new DisposeRecord(); disposeRecord.setWorkflowConfigStepId(workflowConfigStep.getId()); disposeRecord.setHandlerRoleId(workflowConfigStep.getRoleId()); disposeRecord.setBaseCaseId(id); - disposeRecord.setState(state); + disposeRecord.setState(1); disposeRecord.setCreateTime(LocalDateTime.now()); AdminUserDetails userDetails = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); disposeRecord.setCreateUser(userDetails.getUserId()); @@ -237,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<>(); @@ -287,7 +305,7 @@ //3.鏌ヨ妗堝嵎鍥剧墖淇℃伅 FilesPictureVo filesPictureVo = new FilesPictureVo(); QueryWrapper<ImageResources> wrapperIr = new QueryWrapper<>(); - wrapperIr.lambda().eq(ImageResources::getBelongToId,baseCase.getId()); + wrapperIr.lambda().eq(ImageResources::getBelongToId, baseCase.getId()); List<ImageResources> irs = imageResourcesMapper.selectList(wrapperIr); filesPictureVo.setImageResources(irs); bcd.setFilesPictureVo(filesPictureVo); @@ -353,6 +371,7 @@ baseCase.setState(BaseCaseStatus.CLOSING_REGISTER); baseCase.setId(caseId); baseCase.setFinalOpinion(opinion); + baseCase.setCloseTime(LocalDateTime.now()); baseCaseMapper.updateById(baseCase); QueryWrapper<WorkflowConfigStep> stepQurey = new QueryWrapper<>(); @@ -369,8 +388,124 @@ disposeRecord.setHandlerId(user.getUserId()); //缁撴宸茬粨鏉� disposeRecord.setState(1); + disposeRecord.setResult(result); disposeRecord.setEndTime(LocalDateTime.now()); disposeRecord.setHandlerId(user.getUserId()); disposeRecordMapper.update(disposeRecord, updateWrapper); } + + @Override + public Page<BaseCase> selectPage(Page<BaseCase> page, String number, Integer streetId, Integer categories, String startTime, String endTime, String site) { + return baseCaseMapper.selectBaseCasePage(page, number, streetId, categories, startTime, endTime, site); + } + + @Override + public Page<QueryForViolationVO> selectViolation(QueryForViolationParam queryForViolationParam) { + return baseCaseMapper.selectViolationPage( + new Page<QueryForViolationVO>() + .setSize(queryForViolationParam.getPageSize()) + .setCurrent(queryForViolationParam.getCurrent()), queryForViolationParam); + } + + @Override + public List<QueryForViolationVO> selectViolationList(QueryForViolationParam queryForViolationParam) { + return baseCaseMapper.selectViolationPage(queryForViolationParam); + } + + @Override + public Page<BaseCaseVO> selectVideoInspection(Integer current) { + return baseCaseMapper.selectVideoInspection(new Page<>(current, 1)); + } + + @Override + 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.selectRegisterCount(); + Long study = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getState, 3)); + map.put("review", review); + map.put("register", register); + map.put("study", study); + return map; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateCase(VideoInspectParam violationParam) { + BaseCase baseCase = new BaseCase(); + BeanUtils.copyProperties(violationParam, baseCase); + baseCase.setId(violationParam.getBaseId()); + baseCase.setCode(utilNumber.createCaseCode()); + baseCaseMapper.updateById(baseCase); + Violations violations = new Violations(); + BeanUtils.copyProperties(violationParam, violations); + violations.setId(violationParam.getBaseId()); + if (violationParam.getState() == 6) { + AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + violationParam.setCreateUser(user.getUserId()); + DispatchInfoParam dispatchInfoParam = new DispatchInfoParam(); + BeanUtils.copyProperties(violationParam, dispatchInfoParam); + dispatchInfoParam.setBaseCaseId(violationParam.getBaseId()); + iDispatchHandleService.dispatch(dispatchInfoParam); + } + if (violationParam.getState() == 2) { + baseCaseService.uploadEvent(violationParam.getBaseId()); + } + return violationsMapper.updateById(violations) == 1 ? true : false; + } + + @Override + public Integer dayCount() { + return baseCaseMapper.dayCount(); + } + + @Override + public Integer weekCount() { + return baseCaseMapper.weekCount(); + } + + @Override + public Integer dispatchCount() { + return baseCaseMapper.dispatchCount(); + } + + @Override + public Integer alCount() { + return baseCaseMapper.alCount(); + } + + @Override + public List<EventVO> selectEventList(String beginTime, String 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; + } } \ No newline at end of file -- Gitblit v1.8.0