diff --git a/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskGnssBMapper.java b/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskGnssBMapper.java index 12b5c73..8f5460c 100644 --- a/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskGnssBMapper.java +++ b/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskGnssBMapper.java @@ -2,6 +2,7 @@ package com.gunshi.project.ss.common.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.common.model.vo.HomeJcskGnssBVo; import com.gunshi.project.ss.common.model.JcskGnssB; import org.apache.ibatis.annotations.Mapper; @@ -58,4 +59,13 @@ public interface JcskGnssBMapper extends BaseMapper { """) List selectArtificial(); + + @Select(""" + select t1.cd as stcd,t1.cd_nm as stnm,t1.lttd,t1.lgtd,t3.tm from jcsk_gnss_b t1 + left join ( + select cd,max(tm) as max_tm from jcsk_gnss_r group by cd + )t2 on t1.cd = t2.cd + left join jcsk_gnss_r t3 on t2.cd = t3.cd and t2.max_tm = t3.tm +""") + List queryNormalList(); } diff --git a/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskSlBMapper.java b/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskSlBMapper.java index 74603bd..515967a 100644 --- a/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskSlBMapper.java +++ b/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskSlBMapper.java @@ -3,6 +3,7 @@ package com.gunshi.project.ss.common.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.common.model.so.OsmoticDetailQuerySo; import com.gunshi.project.ss.common.model.so.OsmoticQuerySo; import com.gunshi.project.ss.common.model.vo.HomeJcskSlBVo; @@ -160,4 +161,15 @@ public interface JcskSlBMapper extends BaseMapper { """) String selectDvcdByStcdAndMpcd(@Param("mpcd") String mpcd); + + @Select(""" + select t1.dvcd as stcd,t1.dvcd as stnm, t3.mstm as latestTm,t1.lttd,t1.lgtd + from jcsk_sl_b t1 + left join( + select mpcd,max(mstm) as max_tm from jcsk_sl_r group by mpcd + )t2 on t1.mpcd = t2.mpcd + left join jcsk_sl_r t3 on t2.mpcd = t3.mpcd and t2.max_tm = t3.mstm +""") + List queryNormalList(); + } diff --git a/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskSyBMapper.java b/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskSyBMapper.java index ad54ee2..79a67eb 100644 --- a/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskSyBMapper.java +++ b/module-common/src/main/java/com/gunshi/project/ss/common/mapper/JcskSyBMapper.java @@ -3,6 +3,7 @@ package com.gunshi.project.ss.common.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gunshi.project.ss.common.model.JcskSyB; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.common.model.vo.HomeJcskSYBVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -64,4 +65,15 @@ public interface JcskSyBMapper extends BaseMapper { """) List selectAllDvcd(); + @Select(""" + select t1.dvcd as stcd,t1.dvcd as stnm, t3.mstm as latestTm,t1.lttd,t1.lgtd + from jcsk_sy_b t1 + left join( + select stcd,mpcd,max(mstm) as max_tm from jcsk_sy_r group by stcd,mpcd + )t2 on t1.stcd = t2.stcd and t1.mpcd = t2.mpcd + left join jcsk_sy_r t3 on t2.stcd = t3.stcd and t2.mpcd = t3.mpcd and t2.max_tm = t3.mstm +""") + List queryNormalList(); + + } diff --git a/module-common/src/main/java/com/gunshi/project/ss/common/mapper/StStbprpBMapper.java b/module-common/src/main/java/com/gunshi/project/ss/common/mapper/StStbprpBMapper.java index 1aa438c..2bdd6f9 100644 --- a/module-common/src/main/java/com/gunshi/project/ss/common/mapper/StStbprpBMapper.java +++ b/module-common/src/main/java/com/gunshi/project/ss/common/mapper/StStbprpBMapper.java @@ -2,6 +2,7 @@ package com.gunshi.project.ss.common.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gunshi.project.ss.common.model.StStbprpB; +import com.gunshi.project.ss.common.model.StationNormalVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; @@ -48,4 +49,64 @@ public interface StStbprpBMapper extends BaseMapper { """) List getFlowStations(); + + @Select(""" + SELECT + t1.lgtd, + t1.lttd, + t1.stcd, + t1.stnm, + t4.tm as latestTm + FROM st_stbprp_b t1 + JOIN st_stbprp_b_elem t2 ON t1.stcd = t2.stcd + LEFT JOIN ( + -- 每个站点最新一条记录 + SELECT + stcd, + MAX(tm) as max_tm + FROM st_pptn_r + GROUP BY stcd + ) t3 ON t1.stcd = t3.stcd + LEFT JOIN st_pptn_r t4 ON t1.stcd = t4.stcd AND t3.max_tm = t4.tm + WHERE t2.elem = 'drp'; +""") + List getPptnNoramlStations(); + + @Select( + """ + select + t1.lgtd, + t1.lttd, + t1.stcd, + t1.stnm, + t4.tm as latestTm + from st_stbprp_b t1 + join st_stbprp_b_elem t2 on t1.stcd = t2.stcd + left join ( + select stcd,MAX(tm) as max_tm + from st_rsvr_r group by stcd + ) t3 on t1.stcd = t3.stcd + left join st_rsvr_r t4 on t1.stcd = t4.stcd and t3.max_tm = t4.tm + where t2.elem = 'rz' +""" + ) + List getRsvrNormalStations(); + + @Select(""" + select + t1.lgtd, + t1.lttd, + t1.stcd, + t1.stnm, + t4.tm as latestTm + from st_stbprp_b t1 + join st_stbprp_b_elem t2 on t1.stcd = t2.stcd + left join ( + select stcd,MAX(tm) as max_tm + from st_flow_r group by stcd + ) t3 on t1.stcd = t3.stcd + left join st_flow_r t4 on t1.stcd = t4.stcd and t3.max_tm = t4.tm + where t2.elem = 'flow' +""") + List getFlowNormalStations(); } \ No newline at end of file diff --git a/module-common/src/main/java/com/gunshi/project/ss/common/model/StationNormalVo.java b/module-common/src/main/java/com/gunshi/project/ss/common/model/StationNormalVo.java new file mode 100644 index 0000000..28a1b7c --- /dev/null +++ b/module-common/src/main/java/com/gunshi/project/ss/common/model/StationNormalVo.java @@ -0,0 +1,46 @@ +package com.gunshi.project.ss.common.model; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 站点信息返回(通用结构) + */ +@Data +public class StationNormalVo { + + /** + * 0 离线 1在线 + */ + private Integer status; + + /** + * 经度 + */ + private BigDecimal lgtd; + + /** + * 纬度 + */ + private BigDecimal lttd; + + /** + * 站点编码(可为视频点的indexCode) + */ + private String stcd; + + /** + * 站点名称 + */ + private String stnm; + + /** + * 最后监测的数据时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime latestTm; +} diff --git a/src/main/java/com/gunshi/project/ss/controller/AttCctvBaseController.java b/src/main/java/com/gunshi/project/ss/controller/AttCctvBaseController.java index 0d29279..f3c4cb2 100644 --- a/src/main/java/com/gunshi/project/ss/controller/AttCctvBaseController.java +++ b/src/main/java/com/gunshi/project/ss/controller/AttCctvBaseController.java @@ -154,18 +154,7 @@ public class AttCctvBaseController { @Operation(summary = "获取预览地址") @GetMapping("/preview/{indexCode}") public R preview(@PathVariable("indexCode") String indexCode) { - String api = "http://10.42.6.68:7000/liveAddressLimited?cameraIndexCode=%s&protocol=ws&token=111"; - OkHttpClient client = OkHttpUtil.build(); - String ret = null; - try { - Response resp = client.newCall(new Request.Builder().url(String.format(api, indexCode)).build()).execute(); - String respStr = resp.body().string(); - ObjectMapper om = new ObjectMapper(); - Map map = om.readValue(respStr, Map.class); - ret = map.get("data").toString(); - } catch (IOException e) { - throw new RuntimeException(e); - } + String ret = service.preview(indexCode); return R.ok(ret); } diff --git a/src/main/java/com/gunshi/project/ss/controller/DegradeScrapLedgerController.java b/src/main/java/com/gunshi/project/ss/controller/DegradeScrapLedgerController.java new file mode 100644 index 0000000..d9ef4db --- /dev/null +++ b/src/main/java/com/gunshi/project/ss/controller/DegradeScrapLedgerController.java @@ -0,0 +1,69 @@ +package com.gunshi.project.ss.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.core.result.R; +import com.gunshi.project.ss.entity.so.DegradeScrapLedgerPageSo; +import com.gunshi.project.ss.model.DegradeScrapLedger; +import com.gunshi.project.ss.model.FileAssociations; +import com.gunshi.project.ss.service.DegradeScrapLedgerService; +import com.gunshi.project.ss.service.FileAssociationsService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Tag(name = "安全管理-降等报废台账") +@RestController +@RequestMapping(value="/degradeScrapLedger") +public class DegradeScrapLedgerController extends AbstractCommonFileController { + + @Autowired + private DegradeScrapLedgerService degradeScrapLedgerService; + + @Autowired + private FileAssociationsService fileService; + + + @PostMapping("/page") + public R> page(@RequestBody DegradeScrapLedgerPageSo pageSo){ + Page page = degradeScrapLedgerService.pageInfo(pageSo); + for (DegradeScrapLedger record : page.getRecords()) { + List files = fileService.getFiles(getGroupId(), record.getId().toString()); + record.setFiles(files); + } + return R.ok(page); + } + + @PostMapping("/insert") + public R add(@RequestBody DegradeScrapLedger degradeScrapLedger){ + boolean save = degradeScrapLedgerService.save(degradeScrapLedger); + if(save){ + fileService.saveFile(degradeScrapLedger.getFiles(),getGroupId(),degradeScrapLedger.getId().toString()); + } + return R.ok(degradeScrapLedger); + } + + @PostMapping("/update") + public R update(@RequestBody DegradeScrapLedger degradeScrapLedger){ + boolean update = degradeScrapLedgerService.updateById(degradeScrapLedger); + if(update){ + fileService.saveFile(degradeScrapLedger.getFiles(),getGroupId(),degradeScrapLedger.getId().toString()); + } + return R.ok(degradeScrapLedger); + } + + @GetMapping("/del/{id}") + public R del(@PathVariable("id") Long id){ + boolean flag = degradeScrapLedgerService.removeById(id); + if(flag){ + fileService.deleteFile(getGroupId(),id.toString()); + } + return R.ok(flag); + } + + @Override + public String getGroupId() { + return "degradeScrapLedger"; + } +} diff --git a/src/main/java/com/gunshi/project/ss/controller/DocCenterController.java b/src/main/java/com/gunshi/project/ss/controller/DocCenterController.java index 4a76242..d370ef0 100644 --- a/src/main/java/com/gunshi/project/ss/controller/DocCenterController.java +++ b/src/main/java/com/gunshi/project/ss/controller/DocCenterController.java @@ -35,13 +35,13 @@ public class DocCenterController extends AbstractCommonFileController { @PostMapping("/page") public R> pageInfo(@RequestBody DocCenterPageSo pageSo){ Page res = docCenterService.pageInfo(pageSo); -// List records = res.getRecords(); -// if(!records.isEmpty()){ -// for (DocCenter record : records) { -// List files = fileService.getFiles(record.getBusinessName(), record.getId().toString()); -// record.setFiles(files); -// } -// } + List records = res.getRecords(); + if(!records.isEmpty()){ + for (DocCenter record : records) { + List files = fileService.getFiles(record.getBusinessName(), record.getId().toString()); + record.setFiles(files); + } + } return R.ok(res); } @@ -49,9 +49,9 @@ public class DocCenterController extends AbstractCommonFileController { @PostMapping("/insert") public DocCenter insert(@RequestBody DocCenter docCenter){ boolean flag = docCenterService.saveData(docCenter); -// if(flag){ -// fileService.saveFile(docCenter.getFiles(), docCenter.getBusinessName(), docCenter.getId().toString()); -// } + if(flag){ + fileService.saveFile(docCenter.getFiles(), docCenter.getBusinessName(), docCenter.getId().toString()); + } return docCenter; } @@ -59,9 +59,9 @@ public class DocCenterController extends AbstractCommonFileController { @GetMapping("/delete/{id}") public R delete(@PathVariable("id") Integer id){ DocCenter center = docCenterService.deleteById(id); -// if(center != null){ -// fileService.deleteFile(center.getBusinessName(), center.getId().toString()); -// } + if(center != null){ + fileService.deleteFile(center.getBusinessName(), center.getId().toString()); + } return R.ok(true); } @@ -70,14 +70,14 @@ public class DocCenterController extends AbstractCommonFileController { @PostMapping("/edit") public DocCenter edit(@RequestBody DocCenter docCenter){ boolean flag = docCenterService.updateData(docCenter); -// if(flag){ -// fileService.saveFile(docCenter.getFiles(), docCenter.getBusinessName(), docCenter.getId().toString()); -// } + if(flag){ + fileService.saveFile(docCenter.getFiles(), docCenter.getBusinessName(), docCenter.getId().toString()); + } return docCenter; } @Override public String getGroupId() { - return "zzzx"; + return "doccenter"; } } diff --git a/src/main/java/com/gunshi/project/ss/controller/StationController.java b/src/main/java/com/gunshi/project/ss/controller/StationController.java index ef1ba76..94ac348 100644 --- a/src/main/java/com/gunshi/project/ss/controller/StationController.java +++ b/src/main/java/com/gunshi/project/ss/controller/StationController.java @@ -2,17 +2,17 @@ package com.gunshi.project.ss.controller; import com.gunshi.core.result.R; -import com.gunshi.project.ss.common.model.StStbprpB; import com.gunshi.project.ss.entity.vo.ProfilePressTreeVo; -import com.gunshi.project.ss.model.AttCctvBase; -import com.gunshi.project.ss.service.AttCctvBaseService; -import com.gunshi.project.ss.service.AttDamProfileService; -import com.gunshi.project.ss.service.StStbprpBService; +import com.gunshi.project.ss.common.model.StationNormalVo; +import com.gunshi.project.ss.service.*; +import com.ruoyi.common.utils.StringUtils; 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.time.Duration; +import java.time.LocalDateTime; import java.util.List; @RestController @@ -29,47 +29,97 @@ public class StationController { @Autowired private AttDamProfileService attDamProfileService;//渗压断面 + @Autowired + private JcskSyBService jcskSyBService; + + @Autowired + private JcskSlBService jcskSlBService; + + @Autowired + private JcskGnssBService jcskGnssBService; + //获取雨量站信息 @GetMapping("/rainList") - public R> rainList(){ - List stStbprpBList = stStbprpBService.getPptnStations(); - return R.ok(stStbprpBList); + public R> rainList(){ + List stations = stStbprpBService.getPptnNoramlStations(); + handlerStatus(stations); + return R.ok(stations); } //获取水库水位站信息 @GetMapping("/rzList") - public R> rzList(){ - List stStbprpBList = stStbprpBService.getRsvrStations(); - return R.ok(stStbprpBList); + public R> rzList(){ + List stations = stStbprpBService.getRsvrNormalStations(); + handlerStatus(stations); + return R.ok(stations); } -// //获取河道水位站信息 -// @GetMapping("/riverList") -// public R> riverList(){ -// List stStbprpBList = stStbprpBService.getRiverStations(); -// return R.ok(stStbprpBList); -// } //获取流量站信息 @GetMapping("/flowList") - public R> flowList(){ - List stStbprpBList = stStbprpBService.getFlowStations(); - return R.ok(stStbprpBList); + public R> flowList(){ + List stations = stStbprpBService.getFlowNormalStations(); + handlerStatus(stations); + return R.ok(stations); } //获取视频站信息 @GetMapping("/cctvList") - public R> cctvList(){ - List cctvBases = attCctvBaseService.queryList(); + public R> cctvList(){ + List cctvBases = attCctvBaseService.queryNoramlList(); + handlerCCTVStauts(cctvBases); return R.ok(cctvBases); } - //获取渗压监测断面与对应测点 - @GetMapping("/syDmList") - public R> syDmList(){ - List tree = attDamProfileService.tree(); + //渗压测点 + @GetMapping("/syList") + public R> syList(){ + List tree = jcskSyBService.queryNormalList(); return R.ok(tree); } + //位移 + @GetMapping("/gnssList") + public R> gnssList(){ + List tree = jcskGnssBService.queryNormalList(); + return R.ok(tree); + } + + //渗流测点 + @GetMapping("/slList") + public R> slList(){ + List tree = jcskSlBService.queryNormalList(); + return R.ok(tree); + } + + public void handlerCCTVStauts(List stationNormalVos){ + for (StationNormalVo station : stationNormalVos) { + String preview = attCctvBaseService.preview(station.getStcd()); + if(preview == null || StringUtils.isBlank(preview) ||!preview.startsWith("ws")){ + station.setStatus(0); + }else{ + station.setStatus(1); + } + } + } + + public void handlerStatus(List stationNormalVos){ + for (StationNormalVo station : stationNormalVos) { + LocalDateTime latestTm = station.getLatestTm(); + if(latestTm == null){ + station.setStatus(0); + continue; + } + LocalDateTime now = LocalDateTime.now(); + Duration duration = Duration.between(latestTm, now); + if (duration.toHours() >= 1) { + // 超过1小时 + station.setStatus(0); + }else{ + station.setStatus(1); + } + } + } + } diff --git a/src/main/java/com/gunshi/project/ss/entity/so/DegradeScrapLedgerPageSo.java b/src/main/java/com/gunshi/project/ss/entity/so/DegradeScrapLedgerPageSo.java new file mode 100644 index 0000000..88c707f --- /dev/null +++ b/src/main/java/com/gunshi/project/ss/entity/so/DegradeScrapLedgerPageSo.java @@ -0,0 +1,19 @@ +package com.gunshi.project.ss.entity.so; + +import com.gunshi.db.dto.PageSo; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class DegradeScrapLedgerPageSo { + + + @NotNull(message = "分页参数不能为空") + @Schema(description = "分页参数") + private PageSo pageSo; + + private Integer year; + + private Integer implementationMeasure;//0 降等 1报废 +} diff --git a/src/main/java/com/gunshi/project/ss/mapper/AttCctvBaseMapper.java b/src/main/java/com/gunshi/project/ss/mapper/AttCctvBaseMapper.java index ce8f3b3..602660f 100644 --- a/src/main/java/com/gunshi/project/ss/mapper/AttCctvBaseMapper.java +++ b/src/main/java/com/gunshi/project/ss/mapper/AttCctvBaseMapper.java @@ -1,6 +1,7 @@ package com.gunshi.project.ss.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.model.AttCctvBase; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; @@ -25,4 +26,9 @@ public interface AttCctvBaseMapper extends BaseMapper { List queryList(); + @Select(""" + SELECT t1.name as stnm,t1.index_code as stcd,t1.lgtd,t1.lttd + from att_cctv_base t1 +""") + List queryNormalList(); } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/ss/mapper/DegradeScrapLedgerMapper.java b/src/main/java/com/gunshi/project/ss/mapper/DegradeScrapLedgerMapper.java new file mode 100644 index 0000000..7e1a16b --- /dev/null +++ b/src/main/java/com/gunshi/project/ss/mapper/DegradeScrapLedgerMapper.java @@ -0,0 +1,9 @@ +package com.gunshi.project.ss.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.ss.model.DegradeScrapLedger; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DegradeScrapLedgerMapper extends BaseMapper { +} diff --git a/src/main/java/com/gunshi/project/ss/model/AttResBase.java b/src/main/java/com/gunshi/project/ss/model/AttResBase.java index d48d9f7..ed3802f 100644 --- a/src/main/java/com/gunshi/project/ss/model/AttResBase.java +++ b/src/main/java/com/gunshi/project/ss/model/AttResBase.java @@ -15,6 +15,8 @@ import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -607,4 +609,26 @@ public class AttResBase implements Serializable { @TableField(value="brief_tpl") @JsonIgnore private String briefTpl; + + + /** + * 主管部门 + */ + + @TableField("competent_department") + @Schema(description = "主管部门") + private String competentDepartment; + + @TableField("management_unit") + @Schema(description = "管理单位") + private String managementUnit; + + @TableField("issuing_authority") + @Schema(description = "发证机关") + private String issuingAuthority; + + @TableField("issuing_time") + @Schema(description = "发证时间") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate issuingTime; } diff --git a/src/main/java/com/gunshi/project/ss/model/DegradeScrapLedger.java b/src/main/java/com/gunshi/project/ss/model/DegradeScrapLedger.java new file mode 100644 index 0000000..250c442 --- /dev/null +++ b/src/main/java/com/gunshi/project/ss/model/DegradeScrapLedger.java @@ -0,0 +1,118 @@ +package com.gunshi.project.ss.model; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +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.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 降等报废台账实体类 + */ +@Schema(description = "降等报废台账") +@Data +@TableName("degrade_scrap_ledger") +public class DegradeScrapLedger implements Serializable { + + private static final long serialVersionUID = 1L; + + + // ================ 主键 ================ + @Schema(description = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + @NotNull(message = "ID不能为空", groups = Update.class) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + + // ================ 决策信息 ================ + @Schema(description = "实施措施:0-降等 1-报废") + @TableField("implementation_measure") + @NotNull(message = "实施措施不能为空", groups = {Insert.class, Update.class}) + private Integer implementationMeasure; + + @Schema(description = "年度,如:2024") + @TableField("year") + @NotBlank(message = "年度不能为空", groups = {Insert.class, Update.class}) + private Integer year; + + @Schema(description = "是否原计划:0-否 1-是") + @TableField("is_original_plan") + private Integer isOriginalPlan; + + @Schema(description = "降等、报废原因") + @TableField("reason") + private String reason; + + // ================ 降等后信息(仅当实施措施为降等时填写) ================ + @Schema(description = "工程规模(降等后):0-小2型 1-小1型 2-中型 3-大1型 4-大2型") + @TableField("project_scale_after") + private Integer projectScaleAfter; + + @Schema(description = "主要功能(降等后)") + @TableField("main_function_after") + private String mainFunctionAfter; + + @Schema(description = "主管部门(降等后)") + @TableField("competent_department_after") + private String competentDepartmentAfter; + + @Schema(description = "管理单位(降等后)") + @TableField("management_unit_after") + private String managementUnitAfter; + + // ================ 报废后信息(仅当实施措施为报废时填写) ================ + @Schema(description = "报废后安全行洪措施落实情况") + @TableField("flood_safety_measure") + private String floodSafetyMeasure; + + // ================ 进度信息 ================ + @Schema(description = "进展情况") + @TableField("progress_status") + private String progressStatus; + + @Schema(description = "拟完成时间") + @TableField("planned_completion_date") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate plannedCompletionDate; + + @Schema(description = "降等、报废完成时间") + @TableField("actual_completion_date") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate actualCompletionDate; + + @Schema(description = "批准单位") + @TableField("approval_unit") + private String approvalUnit; + + + // ================ 系统字段 ================ + @Schema(description = "创建人ID") + @TableField(value = "create_by") + @JsonSerialize(using = ToStringSerializer.class) + private Long createBy; + + @Schema(description = "创建人姓名") + @TableField(value = "create_name") + private String createName; + + @Schema(description = "创建时间") + @TableField(value = "create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime createTime; + + @Schema(description = "关联的文件列表") + @TableField(exist = false) + private List files; + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/ss/service/AttCctvBaseService.java b/src/main/java/com/gunshi/project/ss/service/AttCctvBaseService.java index 589b5d0..c69be57 100644 --- a/src/main/java/com/gunshi/project/ss/service/AttCctvBaseService.java +++ b/src/main/java/com/gunshi/project/ss/service/AttCctvBaseService.java @@ -1,13 +1,21 @@ package com.gunshi.project.ss.service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.mapper.AttCctvBaseMapper; import com.gunshi.project.ss.model.AttCctvBase; +import com.gunshi.project.ss.util.OkHttpUtil; import lombok.extern.slf4j.Slf4j; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.IOException; import java.util.List; +import java.util.Map; /** * 描述: 视频基本信息表 @@ -23,6 +31,26 @@ public class AttCctvBaseService extends ServiceImpl queryList() { return this.baseMapper.queryList(); } + + public List queryNoramlList() { + return baseMapper.queryNormalList(); + } + + public String preview(String indexCode) { + String api = "http://10.42.6.68:7000/liveAddressLimited?cameraIndexCode=%s&protocol=ws&token=111"; + OkHttpClient client = OkHttpUtil.build(); + String ret = null; + try { + Response resp = client.newCall(new Request.Builder().url(String.format(api, indexCode)).build()).execute(); + String respStr = resp.body().string(); + ObjectMapper om = new ObjectMapper(); + Map map = om.readValue(respStr, Map.class); + ret = map.get("data").toString(); + } catch (IOException e) { + throw new RuntimeException(e); + } + return ret; + } } diff --git a/src/main/java/com/gunshi/project/ss/service/DegradeScrapLedgerService.java b/src/main/java/com/gunshi/project/ss/service/DegradeScrapLedgerService.java new file mode 100644 index 0000000..5b2a6b5 --- /dev/null +++ b/src/main/java/com/gunshi/project/ss/service/DegradeScrapLedgerService.java @@ -0,0 +1,33 @@ +package com.gunshi.project.ss.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.ss.entity.so.DegradeScrapLedgerPageSo; +import com.gunshi.project.ss.mapper.DegradeScrapLedgerMapper; +import com.gunshi.project.ss.mapper.ForecastResultsMapper; +import com.gunshi.project.ss.model.DegradeScrapLedger; +import com.gunshi.project.ss.model.ForecastResults; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class DegradeScrapLedgerService extends ServiceImpl { + public Page pageInfo(DegradeScrapLedgerPageSo pageSo) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if(pageSo.getYear() != null){ + queryWrapper.eq(DegradeScrapLedger::getYear,pageSo.getYear()); + } + + if(pageSo.getImplementationMeasure() != null){ + queryWrapper.eq(DegradeScrapLedger::getImplementationMeasure,pageSo.getImplementationMeasure()); + } + + queryWrapper.orderByDesc(DegradeScrapLedger::getCreateTime); + Page page = this.baseMapper.selectPage(pageSo.getPageSo().toPage(), queryWrapper); + return page; + } +} diff --git a/src/main/java/com/gunshi/project/ss/service/DocCategoryService.java b/src/main/java/com/gunshi/project/ss/service/DocCategoryService.java index e645a33..f36cbed 100644 --- a/src/main/java/com/gunshi/project/ss/service/DocCategoryService.java +++ b/src/main/java/com/gunshi/project/ss/service/DocCategoryService.java @@ -146,7 +146,7 @@ public class DocCategoryService extends ServiceImpl lambdaQueryWrapper= new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(DocCenter::getDocCategoryId, id); Long count = docCenterMapper.selectCount(lambdaQueryWrapper); diff --git a/src/main/java/com/gunshi/project/ss/service/JcskGnssBService.java b/src/main/java/com/gunshi/project/ss/service/JcskGnssBService.java index 32dea05..5046643 100644 --- a/src/main/java/com/gunshi/project/ss/service/JcskGnssBService.java +++ b/src/main/java/com/gunshi/project/ss/service/JcskGnssBService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.project.ss.common.mapper.JcskGnssRMapper; import com.gunshi.project.ss.common.model.JcskGnssR; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.common.model.so.JcskGnssBPageSo; import com.gunshi.project.ss.common.model.vo.HomeJcskGnssBVo; import com.gunshi.project.ss.common.mapper.JcskGnssBMapper; @@ -80,4 +81,8 @@ public class JcskGnssBService extends ServiceImpl { } } } + + public List queryNormalList() { + return baseMapper.queryNormalList(); + } } diff --git a/src/main/java/com/gunshi/project/ss/service/JcskSlBService.java b/src/main/java/com/gunshi/project/ss/service/JcskSlBService.java index 90b3a9f..22a5e09 100644 --- a/src/main/java/com/gunshi/project/ss/service/JcskSlBService.java +++ b/src/main/java/com/gunshi/project/ss/service/JcskSlBService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.common.model.so.JcskSlBPageSo; import com.gunshi.project.ss.common.model.vo.HomeJcskSlBVo; import com.gunshi.project.ss.common.mapper.JcskSlBMapper; @@ -50,4 +51,8 @@ public class JcskSlBService extends ServiceImpl { public String getDvcdByStcdAndMpcd(String mpcd) { return this.baseMapper.selectDvcdByStcdAndMpcd(mpcd); } + + public List queryNormalList() { + return baseMapper.queryNormalList(); + } } diff --git a/src/main/java/com/gunshi/project/ss/service/JcskSyBService.java b/src/main/java/com/gunshi/project/ss/service/JcskSyBService.java index f05e1a2..8414f2f 100644 --- a/src/main/java/com/gunshi/project/ss/service/JcskSyBService.java +++ b/src/main/java/com/gunshi/project/ss/service/JcskSyBService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.common.model.so.JcskSyBPageSo; import com.gunshi.project.ss.common.model.vo.HomeJcskSYBVo; import com.gunshi.project.ss.common.mapper.JcskSyBMapper; @@ -56,4 +57,8 @@ public class JcskSyBService extends ServiceImpl { public List getAllDvcd() { return this.baseMapper.selectAllDvcd(); } + + public List queryNormalList() { + return baseMapper.queryNormalList(); + } } diff --git a/src/main/java/com/gunshi/project/ss/service/StQxWarnRService.java b/src/main/java/com/gunshi/project/ss/service/StQxWarnRService.java index 9b97a45..3b50d84 100644 --- a/src/main/java/com/gunshi/project/ss/service/StQxWarnRService.java +++ b/src/main/java/com/gunshi/project/ss/service/StQxWarnRService.java @@ -190,19 +190,19 @@ public class StQxWarnRService extends ServiceImpl { } } vo.setAiWarnVoMap(aiWarnVoMap); - Map> riverWarningVoMap = new HashMap<>(); - List overWarn = new ArrayList<>(); - List overPmis = new ArrayList<>(); - //TODO 超河道上游 - String upperStcd = "999999999";//固定的站点编码 - setUpAndDownOverRvUpAndDown(upperStcd,dateTimeRangeSo,overWarn,overPmis); - - //TODO 超河道下游 - String lowerStcd = "999999998";//固定的站点编码 - setUpAndDownOverRvUpAndDown(lowerStcd,dateTimeRangeSo,overWarn,overPmis); - riverWarningVoMap.put("overWarn",overWarn); - riverWarningVoMap.put("overPromise",overPmis); - vo.setRiverWarningVoMap(riverWarningVoMap); +// Map> riverWarningVoMap = new HashMap<>(); +// List overWarn = new ArrayList<>(); +// List overPmis = new ArrayList<>(); +// //TODO 超河道上游 +// String upperStcd = "999999999";//固定的站点编码 +// setUpAndDownOverRvUpAndDown(upperStcd,dateTimeRangeSo,overWarn,overPmis); +// +// //TODO 超河道下游 +// String lowerStcd = "999999998";//固定的站点编码 +// setUpAndDownOverRvUpAndDown(lowerStcd,dateTimeRangeSo,overWarn,overPmis); +// riverWarningVoMap.put("overWarn",overWarn); +// riverWarningVoMap.put("overPromise",overPmis); +// vo.setRiverWarningVoMap(riverWarningVoMap); return vo; } diff --git a/src/main/java/com/gunshi/project/ss/service/StStbprpBService.java b/src/main/java/com/gunshi/project/ss/service/StStbprpBService.java index ebf3ee1..a092a9e 100644 --- a/src/main/java/com/gunshi/project/ss/service/StStbprpBService.java +++ b/src/main/java/com/gunshi/project/ss/service/StStbprpBService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.project.ss.common.mapper.StStbprpBMapper; import com.gunshi.project.ss.common.model.StRiverR; import com.gunshi.project.ss.common.model.StStbprpB; +import com.gunshi.project.ss.common.model.StationNormalVo; import com.gunshi.project.ss.common.model.vo.OsmoticShiftListVo2; import com.gunshi.project.ss.entity.dto.StZqrlBDto; import com.gunshi.project.ss.entity.so.HomeStStbprpBSo; @@ -17,6 +18,7 @@ import com.gunshi.project.ss.mapper.StbprpBVoMapper; import com.gunshi.project.ss.common.model.StRsvrR; import com.gunshi.project.ss.model.*; import com.gunshi.project.ss.util.DateUtil; +import com.ruoyi.common.utils.StringUtils; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -114,19 +116,6 @@ public class StStbprpBService extends ServiceImpl { } } res.setRsvrStationList(rzList); - //河道 - List zList = stbprpBVoMapper.zList(); - for (StStatusVo stStatusVo : zList) { - String tm = stStatusVo.getTm(); - if(tm != null && !(DateUtil.hoursBetweenDate(DateUtil.convertStringToDate(tm), new Date()) > 24 )){ - stStatusVo.setStatus(1); - onlineCount++; - }else{ - stStatusVo.setStatus(0); - offlineCount++; - } - } - res.setRiverStationList(zList); // 视频点 List attCctvBases = attCctvBaseService.queryList(); List cctvList = new ArrayList<>(); @@ -135,7 +124,12 @@ public class StStbprpBService extends ServiceImpl { stStatusVo.setStnm(attCctvBase.getName()); stStatusVo.setLgtd(attCctvBase.getLgtd() == null?null:new BigDecimal(attCctvBase.getLgtd())); stStatusVo.setLttd(attCctvBase.getLttd() == null?null:new BigDecimal(attCctvBase.getLttd())); - stStatusVo.setStatus(0); + String preview = attCctvBaseService.preview(attCctvBase.getIndexCode()); + if(preview == null || StringUtils.isBlank(preview) ||!preview.startsWith("ws")){ + stStatusVo.setStatus(0); + }else{ + stStatusVo.setStatus(1); + } cctvList.add(stStatusVo); offlineCount++; } @@ -582,6 +576,18 @@ public class StStbprpBService extends ServiceImpl { public List getFlowStations() { return baseMapper.getFlowStations(); } + + public List getPptnNoramlStations() { + return baseMapper.getPptnNoramlStations(); + } + + public List getRsvrNormalStations() { + return baseMapper.getRsvrNormalStations(); + } + + public List getFlowNormalStations() { + return baseMapper.getFlowNormalStations(); + } }