parent
7153841cf1
commit
17fa0dd348
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.gunshi.project.ss.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.gunshi.core.result.R;
|
||||||
|
import com.gunshi.project.ss.entity.vo.ScreenEquipmentVo;
|
||||||
|
import com.gunshi.project.ss.service.ScreenMechanismsService;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@Tag(name = "大屏-健全机制")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping(value="/screen/mechanisms")
|
||||||
|
public class ScreenMechanismsController {
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ScreenMechanismsService screenMechanismsService;
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/equipment")
|
||||||
|
public R<ScreenEquipmentVo> getScreenEquipment(){
|
||||||
|
ScreenEquipmentVo res = screenMechanismsService.getScreenEquipment();
|
||||||
|
return R.ok(res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.gunshi.project.ss.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.gunshi.core.result.R;
|
||||||
|
import com.gunshi.project.ss.entity.vo.ScreenRsvrVo;
|
||||||
|
import com.gunshi.project.ss.service.ScreenMoniotrService;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Tag(name = "大屏-管控全天候")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping(value="/screen/monitoring")
|
||||||
|
public class ScreenMoniotrController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ScreenMoniotrService screenMoniotrService;
|
||||||
|
|
||||||
|
|
||||||
|
//水库水情
|
||||||
|
@GetMapping("/rsvr")
|
||||||
|
public R<List<ScreenRsvrVo>> getScreenRsvr(){
|
||||||
|
List<ScreenRsvrVo> res = screenMoniotrService.getScreenRsvr();
|
||||||
|
return R.ok(res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.gunshi.project.ss.controller;
|
||||||
|
|
||||||
|
import com.gunshi.core.result.R;
|
||||||
|
import com.gunshi.project.ss.entity.vo.WholeCycleVo;
|
||||||
|
import com.gunshi.project.ss.service.*;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/wholeCycle")
|
||||||
|
@Tag(name = "管理全周期")
|
||||||
|
public class WholeCycleController {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WholeCycleService wholeCycleService;
|
||||||
|
|
||||||
|
|
||||||
|
@Operation(description = "大屏-获取数据")
|
||||||
|
@GetMapping("/get")
|
||||||
|
public R<WholeCycleVo> get(){
|
||||||
|
WholeCycleVo res = wholeCycleService.get();
|
||||||
|
return R.ok(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.gunshi.project.ss.entity.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.bouncycastle.cert.dane.DANEEntry;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ScreenEquipmentVo {
|
||||||
|
|
||||||
|
@Schema(description = "管理用房")
|
||||||
|
private String managementHousing;
|
||||||
|
|
||||||
|
@Schema(description = "雨水情测报")
|
||||||
|
private Long rainWaterCount;
|
||||||
|
|
||||||
|
@Schema(description = "安全监测设施")
|
||||||
|
private Long safeCheckCount;
|
||||||
|
|
||||||
|
@Schema(description = "视频监控设施")
|
||||||
|
private Long cctvCount;
|
||||||
|
|
||||||
|
@Schema(description = "防汛物质种类数量")
|
||||||
|
private Long goodsTypeCount;
|
||||||
|
|
||||||
|
@Schema(description = "防汛道路-防汛路长度(m)")
|
||||||
|
private BigDecimal roadLength;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.gunshi.project.ss.entity.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ScreenRsvrVo {
|
||||||
|
|
||||||
|
//站点编码
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
//站点名称
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
private BigDecimal lttd;
|
||||||
|
|
||||||
|
private BigDecimal lgtd;
|
||||||
|
|
||||||
|
|
||||||
|
//当前水位
|
||||||
|
private BigDecimal rz;
|
||||||
|
|
||||||
|
//汛限水位
|
||||||
|
private BigDecimal flLowLimLev;
|
||||||
|
|
||||||
|
//距汛限
|
||||||
|
private BigDecimal gapFlLowLimLev;
|
||||||
|
|
||||||
|
//当前库容
|
||||||
|
private BigDecimal nowCap;
|
||||||
|
|
||||||
|
//有效库容
|
||||||
|
private BigDecimal effectiveCap;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
package com.gunshi.project.ss.entity.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.gunshi.core.dateformat.DateFormatString;
|
||||||
|
import com.gunshi.project.ss.common.validate.markers.Insert;
|
||||||
|
import com.gunshi.project.ss.common.validate.markers.Update;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class WholeCycleVo {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 大坝安全评定类别(一类坝 二类坝 三类坝)
|
||||||
|
*/
|
||||||
|
@Schema(description="大坝安全评定类别(一类坝 二类坝 三类坝)")
|
||||||
|
private String identifyType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否病险 1:病
|
||||||
|
*/
|
||||||
|
@Schema(description="是否病险 是 否")
|
||||||
|
// @Size(max = 0,message = "是否病险 1:病 最大长度要小于 0")
|
||||||
|
private String isDanger;
|
||||||
|
|
||||||
|
@Schema(description="开工日期")
|
||||||
|
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
|
||||||
|
private Date startDate;
|
||||||
|
|
||||||
|
@Schema(description = "实施措施:降等 报废")
|
||||||
|
@NotNull(message = "实施措施不能为空", groups = {Insert.class, Update.class})
|
||||||
|
private String implementationMeasure;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description="调度规程")
|
||||||
|
// @Size(max = 0,message = "批复时间最大长度要小于 0")
|
||||||
|
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
|
||||||
|
private Date dispatchTime;
|
||||||
|
|
||||||
|
@Schema(description="应急预案")
|
||||||
|
// @Size(max = 0,message = "批复时间最大长度要小于 0")
|
||||||
|
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
|
||||||
|
private Date emergencyTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -39,4 +39,10 @@ public interface RescueGoodsMapper extends BaseMapper<RescueGoodsB> {
|
||||||
""")
|
""")
|
||||||
List<FileDescriptor> detail(@Param("goodsId") Long goodsId);
|
List<FileDescriptor> detail(@Param("goodsId") Long goodsId);
|
||||||
|
|
||||||
|
|
||||||
|
@Select("""
|
||||||
|
select count(DISTINCT goods_type) from rescue_goods_b
|
||||||
|
""")
|
||||||
|
Long queryTypeCount();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -94,4 +94,8 @@ public class RescueGoodsService
|
||||||
public List<FileDescriptor> detail(Long goodsId) {
|
public List<FileDescriptor> detail(Long goodsId) {
|
||||||
return rescueGoodsMapper.detail(goodsId);
|
return rescueGoodsMapper.detail(goodsId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Long queryTypeCount() {
|
||||||
|
return rescueGoodsMapper.queryTypeCount();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
package com.gunshi.project.ss.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.gunshi.project.ss.entity.vo.ScreenEquipmentVo;
|
||||||
|
import com.gunshi.project.ss.model.AttResBase;
|
||||||
|
import com.gunshi.project.ss.model.AttResBuilding;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class ScreenMechanismsService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AttResBuildingService attResBuildingService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AttResBaseService attResBaseService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StStbprpBElemService stStbprpBElemService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JcskSyBService jcskSyBService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JcskSlBService jcskSlBService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JcskGnssBService jcskGnssBService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AttCctvBaseService attCctvBaseService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RescueGoodsService rescueGoodsService;
|
||||||
|
|
||||||
|
public ScreenEquipmentVo getScreenEquipment() {
|
||||||
|
ScreenEquipmentVo res = new ScreenEquipmentVo();
|
||||||
|
|
||||||
|
//管理用房
|
||||||
|
AttResBase one = attResBaseService.lambdaQuery().one();
|
||||||
|
if(one != null){
|
||||||
|
res.setManagementHousing(one.getManagementHousing());
|
||||||
|
}
|
||||||
|
|
||||||
|
//雨晴、水情、流量站总数量
|
||||||
|
Long count = stStbprpBElemService.lambdaQuery().count();
|
||||||
|
res.setRainWaterCount(count);
|
||||||
|
|
||||||
|
//安全监测设备
|
||||||
|
Long jcskSyCount = jcskSyBService.lambdaQuery().count();
|
||||||
|
Long jcskSlCount = jcskSlBService.lambdaQuery().count();
|
||||||
|
Long jcskGnssCount = jcskGnssBService.lambdaQuery().count();
|
||||||
|
res.setSafeCheckCount(jcskSyCount + jcskSlCount + jcskGnssCount);
|
||||||
|
|
||||||
|
//视频监控设施
|
||||||
|
Long attCctvCount = attCctvBaseService.lambdaQuery().count();
|
||||||
|
res.setCctvCount(attCctvCount);
|
||||||
|
|
||||||
|
//防汛物质总类
|
||||||
|
Long goodsTypeCount = rescueGoodsService.queryTypeCount();
|
||||||
|
res.setGoodsTypeCount(goodsTypeCount);
|
||||||
|
|
||||||
|
//防汛道路
|
||||||
|
AttResBuilding attResBuilding = attResBuildingService.lambdaQuery().one();
|
||||||
|
if(attResBuilding != null){
|
||||||
|
res.setRoadLength(attResBuilding.getRoadLength());
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
package com.gunshi.project.ss.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.gunshi.project.ss.common.model.StStbprpB;
|
||||||
|
import com.gunshi.project.ss.entity.vo.AttResBaseVo;
|
||||||
|
import com.gunshi.project.ss.entity.vo.ScreenRsvrVo;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class ScreenMoniotrService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StStbprpBService stStbprpBService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AttResBaseService attResBaseService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ReservoirWaterService reservoirWaterService;
|
||||||
|
|
||||||
|
public List<ScreenRsvrVo> getScreenRsvr() {
|
||||||
|
//查询所有的水库水情站点
|
||||||
|
List<ScreenRsvrVo> res = new ArrayList<>();
|
||||||
|
List<AttResBaseVo> attResBaseVos = reservoirWaterService.listV2();
|
||||||
|
for (AttResBaseVo rsvrStation : attResBaseVos) {
|
||||||
|
ScreenRsvrVo entity = new ScreenRsvrVo();
|
||||||
|
entity.setStcd(rsvrStation.getStcd());
|
||||||
|
entity.setStnm(rsvrStation.getStnm());
|
||||||
|
entity.setLgtd(rsvrStation.getLgtd());
|
||||||
|
entity.setLttd(rsvrStation.getLttd());
|
||||||
|
BigDecimal rz = rsvrStation.getRz();
|
||||||
|
entity.setRz(rz);
|
||||||
|
BigDecimal nowCap = rsvrStation.getNowCap();
|
||||||
|
BigDecimal deadCap = rsvrStation.getDeadCap();
|
||||||
|
entity.setNowCap(rsvrStation.getNowCap());
|
||||||
|
if(nowCap != null && deadCap != null){
|
||||||
|
entity.setEffectiveCap(nowCap.subtract(deadCap));
|
||||||
|
}
|
||||||
|
BigDecimal flLowLimLev = rsvrStation.getFlLowLimLev();
|
||||||
|
entity.setFlLowLimLev(rsvrStation.getFlLowLimLev());
|
||||||
|
if(rz != null && flLowLimLev != null){
|
||||||
|
entity.setGapFlLowLimLev(rz.subtract(flLowLimLev));
|
||||||
|
}
|
||||||
|
res.add(entity);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,90 @@
|
||||||
|
package com.gunshi.project.ss.service;
|
||||||
|
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
@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 调度规程
|
||||||
|
|
||||||
|
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
|
||||||
|
//应急预案
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue