package com.ycl.service.caseHandler.impl; 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; /** *

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

* * @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; @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 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 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 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; } @Override public BaseCaseDetail baseCaseDetail(String code) { BaseCaseDetail bcd = new BaseCaseDetail(); //1.查询案件基本信息 QueryWrapper 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 wrapperAs = new QueryWrapper<>(); wrapperAs.lambda().eq(ArrivalSituation::getBaseCaseId, baseCase.getId()); //设置到达现场情况 ArrivalSituation as = arrivalSituationMapper.selectOne(wrapperAs); currentSitVo.setArrivalSituation(as); //设置调查取证 QueryWrapper wrapperI = new QueryWrapper<>(); wrapperI.lambda().eq(Investigation::getBaseCaseId, baseCase.getId()); Investigation investigation = investigationMapper.selectOne(wrapperI); currentSitVo.setInvestigation(investigation); //设置告知违法 QueryWrapper wrapperW = new QueryWrapper<>(); wrapperW.lambda().eq(Writ::getBaseCaseId, baseCase.getId()); Writ writ = writMapper.selectOne(wrapperW); currentSitVo.setWrit(writ); bcd.setCurrentSitVo(currentSitVo); return bcd; } }