From ae6eec0f0adec077169455e79de95c3d5a0968c5 Mon Sep 17 00:00:00 2001 From: mg <maokecheng@163.com> Date: 星期四, 29 九月 2022 13:19:46 +0800 Subject: [PATCH] 案件详情。 --- ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 215 insertions(+), 4 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 f155201..ff3c5dc 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 @@ -1,10 +1,35 @@ package com.ycl.service.caseHandler.impl; -import com.ycl.entity.caseHandler.BaseCase; -import com.ycl.mapper.caseHandler.BaseCaseMapper; -import com.ycl.service.caseHandler.IBaseCaseService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.bo.casePool.CasePoolIllegalBuildingDO; +import com.ycl.bo.casePool.CasePoolViolationDO; +import com.ycl.bo.casePool.CurrentSitVo; +import com.ycl.dto.casePool.IllegalBuildingParam; +import com.ycl.dto.casePool.ViolationParam; +import com.ycl.entity.caseHandler.*; +import com.ycl.entity.video.VideoAlarmReport; +import com.ycl.mapper.caseHandler.*; +import com.ycl.mapper.dict.DataDictionaryMapper; +import com.ycl.remote.dto.EventAddParamDto; +import com.ycl.remote.dto.EventProcessParamDto; +import com.ycl.service.caseHandler.IBaseCaseService; +import com.ycl.service.caseHandler.IViolationsService; +import com.ycl.service.video.IVideoAlarmReportService; +import com.ycl.vo.casePool.CasePoolIllegalBuildingVO; +import com.ycl.vo.casePool.CasePoolViolationVO; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +42,190 @@ @Service public class BaseCaseServiceImpl extends ServiceImpl<BaseCaseMapper, BaseCase> implements IBaseCaseService { -} + // private CityPlatformService cityPlatformService; + private IViolationsService violationsService; + private IVideoAlarmReportService videoAlarmReportService; + + @Value("${fdfs.fileUrl}") + private String fileUrl; + +// @Autowired +// public void setCityPlatformService(CityPlatformService cityPlatformService) { +// this.cityPlatformService = cityPlatformService; +// } + + @Autowired + public void setViolationsService(IViolationsService violationsService) { + this.violationsService = violationsService; + } + + @Autowired + public void setVideoAlarmReportService(IVideoAlarmReportService videoAlarmReportService) { + this.videoAlarmReportService = videoAlarmReportService; + } + + @Resource + BaseCaseMapper baseCaseMapper; + @Resource + DataDictionaryMapper dataDictionaryMapper; + @Resource + ViolationsMapper violationsMapper; + @Resource + IllegalBuildingMapper illegalBuildingMapper; + + @Resource + ArrivalSituationMapper arrivalSituationMapper; + @Resource + InvestigationMapper investigationMapper; + @Resource + WritMapper writMapper; + + + @Override + public String uploadEvent(Integer caseId) { + BaseCase baseCase = this.getById(caseId); + Violations violations = violationsService.getById(caseId); + String medias = ""; + String eventDesc = ""; + if (violations != null) { + eventDesc = violations.getDescription(); + VideoAlarmReport videoAlarmReport = videoAlarmReportService.getById(violations.getVideoAlarmReportId()); + if (videoAlarmReport != null) { + StringBuilder stringBuilder = new StringBuilder().append("[{'mediaURL':'").append(fileUrl).append(videoAlarmReport.getPicData()).append("'}]"); + medias = stringBuilder.toString(); + } + } + EventAddParamDto dto = EventAddParamDto.builder().y84(baseCase.getLatitude().toString()).x84(baseCase.getLongitude().toString()) + .source(11).address(baseCase.getSite()).eventDesc(eventDesc).eventSign(baseCase.getCode()).medias(medias).build(); +// ResultResponseDto<EventAddResponseDto> result = cityPlatformService.addEvent(dto); +// if (result.getCode() == 0) { +// EventAddResponseDto responseDto = result.getResult(); +// baseCase.setTaskCode(responseDto.getTaskcode()); +// this.updateById(baseCase); +// return null; +// } else { +// return result.getMsg(); +// } + return null; + } + + @Override + public String processEvent(Integer caseId) { + BaseCase baseCase = this.getById(caseId); + EventProcessParamDto paramDto = EventProcessParamDto.builder().eventSign(baseCase.getCode()).taskcode(baseCase.getTaskCode()).build(); +// ResultResponseDto<EventProcessResponseDto> responseDto = cityPlatformService.getEventProcess(paramDto); +// if (responseDto.getCode() == 0) { +// EventProcessResponseDto eventProcessResponseDto = responseDto.getResult(); +// /*********** 鏈鐞嗗競骞冲彴杩斿洖鏁版嵁 ***************/ +// return null; +// } else { +// return responseDto.getMsg(); +// } + return null; + } + + @Override + public Page listViolationsPage(Page page, Integer state, Integer resource) { + Integer type = 01; + Page<CasePoolViolationDO> violationsPage = baseCaseMapper.listViolationsPage(page, state, type, resource); + List<CasePoolViolationVO> violationVOList = violationsPage.getRecords().stream().map(item -> { + CasePoolViolationVO casePoolViolationVO = new CasePoolViolationVO(); + BeanUtils.copyProperties(item, casePoolViolationVO); + if (item.getCloseTime() == null) { + long nowTime = System.currentTimeMillis(); + long alarmTime = item.getAlarmTime().toEpochSecond(ZoneOffset.ofHours(8)); + LocalDateTime continueTimes = Instant.ofEpochMilli(nowTime - alarmTime).atZone(ZoneOffset.ofHours(8)).toLocalDateTime(); + String continueTime = continueTimes.getHour() + "鏃�" + continueTimes.getSecond() + "鍒嗛挓"; + casePoolViolationVO.setContinueTime(continueTime); + } else { + long closeTime = item.getCloseTime().toEpochSecond(ZoneOffset.ofHours(8)); + long alarmTime = item.getAlarmTime().toEpochSecond(ZoneOffset.ofHours(8)); + LocalDateTime continueTimes = Instant.ofEpochMilli(closeTime - alarmTime).atZone(ZoneOffset.ofHours(8)).toLocalDateTime(); + String continueTime = continueTimes.getHour() + "鏃�" + continueTimes.getSecond() + "鍒嗛挓"; + casePoolViolationVO.setContinueTime(continueTime); + } + casePoolViolationVO.setCategory(dataDictionaryMapper.selectById(item.getCategoryId()).getName()); + casePoolViolationVO.setType(dataDictionaryMapper.selectById(item.getTypeId()).getName()); + return casePoolViolationVO; + }).collect(Collectors.toList()); + Page<CasePoolViolationVO> casePoolViolationVOPage = new Page<>(); + BeanUtils.copyProperties(violationsPage, casePoolViolationVOPage); + casePoolViolationVOPage.setRecords(violationVOList); + return casePoolViolationVOPage; + } + + @Override + public Page listIllegalBuilding(Page page, Integer state, Integer resource) { + Integer type = 02; + Page<CasePoolIllegalBuildingDO> casePoolIllegalBuildingDTOPage = baseCaseMapper.listIllegalBuildingsPage(page, state, type, resource); + List<CasePoolIllegalBuildingVO> casePoolIllegalBuildingVOList = casePoolIllegalBuildingDTOPage + .getRecords() + .stream() + .map( + item -> { + CasePoolIllegalBuildingVO casePoolIllegalBuildingVO = new CasePoolIllegalBuildingVO(); + BeanUtils.copyProperties(item, casePoolIllegalBuildingVO); + casePoolIllegalBuildingVO.setCategory(dataDictionaryMapper.selectById(item.getCategoryId()).getName()); + return casePoolIllegalBuildingVO; + } + ).collect(Collectors.toList()); + Page<CasePoolIllegalBuildingVO> casePoolViolationVOPage = new Page<>(); + BeanUtils.copyProperties(casePoolIllegalBuildingDTOPage, casePoolViolationVOPage); + casePoolViolationVOPage.setRecords(casePoolIllegalBuildingVOList); + return casePoolViolationVOPage; + } + + @Override + public Boolean saveViolationCase(ViolationParam violationParam, Integer id) { + BaseCase baseCase = new BaseCase(); + Violations violations = new Violations(); + BeanUtils.copyProperties(violationParam, baseCase); + BeanUtils.copyProperties(violationParam, violations); + violations.setId(id); + Integer value = 1; + return violationsMapper.insert(violations) == value ? true : false; + } + + @Override + public Boolean saveIllegalBuildingCase(IllegalBuildingParam illegalBuildingParam, Integer id) { + BaseCase baseCase = new BaseCase(); + IllegalBuilding illegalBuilding = new IllegalBuilding(); + BeanUtils.copyProperties(illegalBuilding, baseCase); + BeanUtils.copyProperties(illegalBuilding, illegalBuildingParam); + illegalBuilding.setBaseCaseId(id); + Integer value = 1; + return illegalBuildingMapper.insert(illegalBuilding) == value ? true : false; + } + + @Override + public BaseCaseDetail baseCaseDetail(String code) { + BaseCaseDetail bcd = new BaseCaseDetail(); + //1.鏌ヨ妗堜欢鍩烘湰淇℃伅 + QueryWrapper<BaseCase> wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(BaseCase::getCode, code); + BaseCase baseCase = baseCaseMapper.selectOne(wrapper); + bcd.setBaseCase(baseCase); + //2.鏌ヨ鍔炵悊缁忚繃淇℃伅 + //3.鏌ヨ妗堝嵎鍥剧墖淇℃伅 + //4.鏌ヨ闂澶勭悊淇℃伅 + //5.鏌ヨ鐜板満鎯呭喌淇℃伅 + CurrentSitVo currentSitVo = new CurrentSitVo(); + QueryWrapper<ArrivalSituation> wrapperAs = new QueryWrapper<>(); + wrapperAs.lambda().eq(ArrivalSituation::getBaseCaseId, baseCase.getId()); + //璁剧疆鍒拌揪鐜板満鎯呭喌 + ArrivalSituation as = arrivalSituationMapper.selectOne(wrapperAs); + currentSitVo.setArrivalSituation(as); + //璁剧疆璋冩煡鍙栬瘉 + QueryWrapper<Investigation> wrapperI = new QueryWrapper<>(); + wrapperI.lambda().eq(Investigation::getBaseCaseId, baseCase.getId()); + Investigation investigation = investigationMapper.selectOne(wrapperI); + currentSitVo.setInvestigation(investigation); + //璁剧疆鍛婄煡杩濇硶 + QueryWrapper<Writ> wrapperW = new QueryWrapper<>(); + wrapperW.lambda().eq(Writ::getBaseCaseId, baseCase.getId()); + Writ writ = writMapper.selectOne(wrapperW); + currentSitVo.setWrit(writ); + bcd.setCurrentSitVo(currentSitVo); + return bcd; + } +} \ No newline at end of file -- Gitblit v1.8.0