package com.ycl.service.caseHandler.impl; 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.dto.casePool.IllegalBuildingParam; import com.ycl.dto.casePool.ViolationParam; import com.ycl.entity.caseHandler.BaseCase; import com.ycl.entity.caseHandler.IllegalBuilding; import com.ycl.entity.caseHandler.Violations; import com.ycl.entity.video.VideoAlarmReport; import com.ycl.mapper.caseHandler.BaseCaseMapper; import com.ycl.mapper.caseHandler.IllegalBuildingMapper; import com.ycl.mapper.caseHandler.ViolationsMapper; import com.ycl.mapper.dict.DataDictionaryMapper; import com.ycl.remote.dto.*; import com.ycl.remote.service.CityPlatformService; 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; /** *

* 案件基本信息 服务实现类 *

* * @author wl * @since 2022-09-24 */ @Service public class BaseCaseServiceImpl extends ServiceImpl 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; @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 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(); } } @Override public String processEvent(Integer caseId) { BaseCase baseCase = this.getById(caseId); EventProcessParamDto paramDto = EventProcessParamDto.builder().eventSign(baseCase.getCode()).taskcode(baseCase.getTaskCode()).build(); ResultResponseDto responseDto = cityPlatformService.getEventProcess(paramDto); if (responseDto.getCode() == 0) { EventProcessResponseDto eventProcessResponseDto = responseDto.getResult(); /*********** 未处理市平台返回数据 ***************/ return null; } else { return responseDto.getMsg(); } } @Override public Page listViolationsPage(Page page, Integer state, Integer resource) { Integer type = 01; Page violationsPage = baseCaseMapper.listViolationsPage(page, state, type, resource); List 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 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 casePoolIllegalBuildingDTOPage = baseCaseMapper.listIllegalBuildingsPage(page, state, type, resource); List 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 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; } }