package com.gunshi.project.ss.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.gunshi.project.ss.entity.vo.ScreenSecurityCheckVo; import com.gunshi.project.ss.entity.vo.WholeCycleVo; import com.gunshi.project.ss.model.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Service @Slf4j public class WholeCycleService { @Autowired private SafetyIdentifyService safetyIdentifyService;//安全鉴定 @Autowired private AttResBaseService attResBaseService;//病险水库 @Autowired private SafetyReinforcementService safetyReinforcementService;//除险加固 @Autowired private DegradeScrapLedgerService degradeScrapLedgerService;//降等报废 @Autowired private ResPlanBService resPlanBService;//type 1 防汛预案 type2 调度规程 @Autowired private FileAssociationsService fileService; public WholeCycleVo get() { WholeCycleVo res = new WholeCycleVo(); SafetyIdentify one = safetyIdentifyService.lambdaQuery().orderByDesc(SafetyIdentify::getIdentifyDate).last("limit 1").one(); //安全鉴定 if(one == null || one.getIdentifyType() == null){ res.setIdentifyType("无"); }else{ if(one.getIdentifyType() == 1){ res.setIdentifyType("一类坝"); }else if(one.getIdentifyType() == 2){ res.setIdentifyType("二类坝"); }else if(one.getIdentifyType() == 3){ res.setIdentifyType("三类坝"); } } //病险水库 AttResBase attResBase = attResBaseService.lambdaQuery().last("limit 1").one(); if(attResBase == null){ res.setIsDanger("无"); }else if(attResBase.getIsDanger() != null && attResBase.getIsDanger() == 1){ res.setIsDanger("是"); }else{ res.setIsDanger("否"); } //除险加固 SafetyReinforcement safetyReinforcement = safetyReinforcementService.lambdaQuery().orderByDesc(SafetyReinforcement::getStartDate).last("limit 1").one(); if(safetyReinforcement == null || safetyReinforcement.getStartDate() == null){ res.setStartDate(null); }else{ res.setStartDate(safetyReinforcement.getStartDate()); } //降等报废 DegradeScrapLedger degradeScrapLedger = degradeScrapLedgerService.lambdaQuery().orderByDesc(DegradeScrapLedger::getYear).last("limit 1").one(); if(degradeScrapLedger == null){ res.setImplementationMeasure("无"); }else if(degradeScrapLedger.getImplementationMeasure() != null && degradeScrapLedger.getImplementationMeasure() == 1){ res.setImplementationMeasure("报废"); }else if(degradeScrapLedger.getImplementationMeasure() != null && degradeScrapLedger.getImplementationMeasure() == 0){ res.setIsDanger("降等"); } //调度规则 ResPlanB dispatcher = resPlanBService.lambdaQuery().eq(ResPlanB::getType, 2).eq(ResPlanB::getIsAvailable, 1).orderByDesc(ResPlanB::getPrepTime).last("limit 1").one(); if(dispatcher == null){ res.setDispatchTime(null); }else{ res.setDispatchTime(dispatcher.getPrepTime()); } List dispatcherFile = fileService.getFiles("ResPlanB", dispatcher.getId().toString()); List dispatcherIds = dispatcherFile.stream().map(o -> o.getFileId().toString()).collect(Collectors.toList()); res.setDispatchFileIds(dispatcherIds); //应急预案 ResPlanB emergency = resPlanBService.lambdaQuery().eq(ResPlanB::getType, 1).eq(ResPlanB::getIsAvailable, 1).orderByDesc(ResPlanB::getPrepTime).last("limit 1").one(); if(emergency == null){ res.setEmergencyTime(null); }else{ res.setEmergencyTime(emergency.getPrepTime()); } List emergencyFile = fileService.getFiles("ResPlanB", emergency.getId().toString()); List emergencyFileIds = emergencyFile.stream().map(o -> o.getFileId().toString()).collect(Collectors.toList()); res.setEmergencyFileIds(emergencyFileIds); return res; } @Autowired private SafetyIdentifyService service;//鉴定时间 public ScreenSecurityCheckVo getSecurity() { ScreenSecurityCheckVo res = new ScreenSecurityCheckVo(); SafetyIdentify one = safetyIdentifyService.lambdaQuery().orderByDesc(SafetyIdentify::getIdentifyDate).last("limit 1").one(); //安全鉴定 if(one == null || one.getIdentifyType() == null){ res.setIdentifyType("无"); }else{ if(one.getIdentifyType() == 1){ res.setIdentifyType("一类坝"); }else if(one.getIdentifyType() == 2){ res.setIdentifyType("二类坝"); }else if(one.getIdentifyType() == 3){ res.setIdentifyType("三类坝"); } } SafetyIdentify safetyIdentify = service.lambdaQuery().orderByDesc(SafetyIdentify::getIdentifyDate) .last("limit 1").one(); if(safetyIdentify != null){ res.setIdentifyDate(safetyIdentify.getIdentifyDate()); res.setNextVerifyDate(safetyIdentify.getNextVerifyDate()); } return res; } }