2026-01-29 13:49:41 +08:00
|
|
|
package com.gunshi.project.ss.service;
|
|
|
|
|
|
|
|
|
|
|
2026-02-03 14:54:54 +08:00
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import com.gunshi.project.ss.entity.vo.ScreenSecurityCheckVo;
|
2026-01-29 13:49:41 +08:00
|
|
|
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;
|
|
|
|
|
|
2026-01-29 17:47:29 +08:00
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
2026-01-29 13:49:41 +08:00
|
|
|
@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 调度规程
|
|
|
|
|
|
2026-01-29 17:47:29 +08:00
|
|
|
@Autowired
|
|
|
|
|
private FileAssociationsService fileService;
|
|
|
|
|
|
2026-01-29 13:49:41 +08:00
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
}
|
2026-01-29 17:47:29 +08:00
|
|
|
List<FileAssociations> dispatcherFile = fileService.getFiles("ResPlanB", dispatcher.getId().toString());
|
2026-01-30 10:40:47 +08:00
|
|
|
List<String> dispatcherIds = dispatcherFile.stream().map(o -> o.getFileId().toString()).collect(Collectors.toList());
|
2026-01-29 17:47:29 +08:00
|
|
|
res.setDispatchFileIds(dispatcherIds);
|
2026-01-29 13:49:41 +08:00
|
|
|
//应急预案
|
|
|
|
|
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());
|
|
|
|
|
}
|
2026-01-29 17:47:29 +08:00
|
|
|
List<FileAssociations> emergencyFile = fileService.getFiles("ResPlanB", emergency.getId().toString());
|
2026-01-30 10:40:47 +08:00
|
|
|
List<String> emergencyFileIds = emergencyFile.stream().map(o -> o.getFileId().toString()).collect(Collectors.toList());
|
2026-01-29 17:47:29 +08:00
|
|
|
res.setEmergencyFileIds(emergencyFileIds);
|
2026-01-29 13:49:41 +08:00
|
|
|
return res;
|
|
|
|
|
}
|
2026-02-03 14:54:54 +08:00
|
|
|
|
|
|
|
|
@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;
|
|
|
|
|
}
|
2026-01-29 13:49:41 +08:00
|
|
|
}
|