From e4762957b9b8b47dad8e9e7a884afa59537209cb Mon Sep 17 00:00:00 2001 From: hxh <762326930@qq.com> Date: Tue, 19 Mar 2024 17:32:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kms/yg/df/service/BsSgcDfJbxxService.java | 18 ++++-- .../kms/yg/sz/service/BsSgcSzGcdaService.java | 17 ++++-- .../controller/ObjectInfoController.java | 58 +++++++++++++++++++ .../kms/yxgh/common/dto/ObjectInfoDto.java | 30 ++++++++++ .../yxgh/common/service/SyDictService.java | 58 +++++++++++++++++++ .../yxgh/common/service/WarningService.java | 32 +--------- 6 files changed, 174 insertions(+), 39 deletions(-) create mode 100644 shuili-system/src/main/java/com/kms/yxgh/common/controller/ObjectInfoController.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectInfoDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/common/service/SyDictService.java diff --git a/shuili-system/src/main/java/com/kms/yg/df/service/BsSgcDfJbxxService.java b/shuili-system/src/main/java/com/kms/yg/df/service/BsSgcDfJbxxService.java index e4dc760c..7955d0b6 100644 --- a/shuili-system/src/main/java/com/kms/yg/df/service/BsSgcDfJbxxService.java +++ b/shuili-system/src/main/java/com/kms/yg/df/service/BsSgcDfJbxxService.java @@ -1,11 +1,12 @@ package com.kms.yg.df.service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.yg.df.domain.BsSgcDfJbxx; import com.kms.yg.df.mapper.BsSgcDfJbxxMapper; -import com.kms.yg.sz.domain.BsSgcSzGcda; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.core.service.BaseService; import com.shuili.common.utils.StringUtils; @@ -22,7 +23,7 @@ import java.util.Map; * @date 2023-12-25 */ @Service -public class BsSgcDfJbxxService extends BaseService{ +public class BsSgcDfJbxxService extends BaseService { @Autowired private BsSgcDfJbxxMapper bsSgcDfJbxxMapper; @@ -38,7 +39,7 @@ public class BsSgcDfJbxxService extends BaseService params = sp.getParams(); - if (params!=null) { + if (params != null) { //create_time if (params.get("orderBy") != null) { String orderBy = (String) params.get("orderBy"); @@ -56,8 +57,15 @@ public class BsSgcDfJbxxService extends BaseService page = new Page<>(sp.getPageNum(),sp.getPageSize()); + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); Page infoPage = bsSgcDfJbxxMapper.selectPage(page, queryWrapper); return infoPage; } + + //通过编码查询堤防信息 + public BsSgcDfJbxx selectByDikeCode(String dikeCode) { + Wrapper queryWrapper = Wrappers.lambdaQuery(BsSgcDfJbxx.class) + .eq(BsSgcDfJbxx::getDikeCode, dikeCode); + return bsSgcDfJbxxMapper.selectOne(queryWrapper); + } } diff --git a/shuili-system/src/main/java/com/kms/yg/sz/service/BsSgcSzGcdaService.java b/shuili-system/src/main/java/com/kms/yg/sz/service/BsSgcSzGcdaService.java index eeffd800..9b6a25ee 100644 --- a/shuili-system/src/main/java/com/kms/yg/sz/service/BsSgcSzGcdaService.java +++ b/shuili-system/src/main/java/com/kms/yg/sz/service/BsSgcSzGcdaService.java @@ -1,7 +1,9 @@ package com.kms.yg.sz.service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.yg.sz.domain.BsSgcSzGcda; import com.kms.yg.sz.mapper.BsSgcSzGcdaMapper; @@ -21,7 +23,7 @@ import java.util.Map; * @date 2023-12-25 */ @Service -public class BsSgcSzGcdaService extends BaseService{ +public class BsSgcSzGcdaService extends BaseService { @Autowired private BsSgcSzGcdaMapper bsSgcSzGcdaMapper; @@ -37,7 +39,7 @@ public class BsSgcSzGcdaService extends BaseService params = sp.getParams(); - if (params!=null) { + if (params != null) { //create_time if (params.get("orderBy") != null) { String orderBy = (String) params.get("orderBy"); @@ -55,8 +57,15 @@ public class BsSgcSzGcdaService extends BaseService page = new Page<>(sp.getPageNum(),sp.getPageSize()); + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); Page infoPage = bsSgcSzGcdaMapper.selectPage(page, queryWrapper); return infoPage; } + + //通过编码查询水闸工程基础信息 + public BsSgcSzGcda selectByWagaCode(String waGaCode) { + Wrapper queryWrapper = Wrappers.lambdaQuery() + .eq(BsSgcSzGcda::getWagaCode, waGaCode); + return bsSgcSzGcdaMapper.selectOne(queryWrapper); + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/controller/ObjectInfoController.java b/shuili-system/src/main/java/com/kms/yxgh/common/controller/ObjectInfoController.java new file mode 100644 index 00000000..4f46dd56 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/common/controller/ObjectInfoController.java @@ -0,0 +1,58 @@ +package com.kms.yxgh.common.controller; + +import com.kms.yg.df.domain.BsSgcDfJbxx; +import com.kms.yg.df.service.BsSgcDfJbxxService; +import com.kms.yg.sz.domain.BsSgcSzGcda; +import com.kms.yg.sz.service.BsSgcSzGcdaService; +import com.kms.yxgh.base.Response; +import com.kms.yxgh.common.dto.ObjectInfoDto; +import com.kms.yxgh.common.service.SyDictService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName: ObjectInfoController + * @Description: TODO + * @Date: 2024/3/19 下午5:01 + * * + * @author: hxh + * @version: 1.0 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/run/api/object") +@Api(tags = "大屏对象详细相关") +public class ObjectInfoController { + + private final BsSgcDfJbxxService bsSgcDfJbxxService; + private final BsSgcSzGcdaService bsSgcSzGcdaService; + private final SyDictService syDictService; + + //通过类型和编码查询对象详细信息 + @GetMapping("/info/{type}/{code}") + @ApiOperation("通过类型和编码查询对象详细信息") + public Response info(@PathVariable String type, @PathVariable String code) { + if ("1".equals(type)) { + BsSgcDfJbxx bsSgcDfJbxx = bsSgcDfJbxxService.selectByDikeCode(code); + ObjectInfoDto objectInfoDto = new ObjectInfoDto(); + objectInfoDto.setCode(bsSgcDfJbxx.getDikeCode()); + objectInfoDto.setName(bsSgcDfJbxx.getDikeName()); + objectInfoDto.setAdcd(bsSgcDfJbxx.getAdcd()); + objectInfoDto.setRiverLocation(bsSgcDfJbxx.getRiverLocation()); + objectInfoDto.setGrad(syDictService.get("embankment_level", bsSgcDfJbxx.getDikeGrad()).getDictLabel()); + } else if ("2".equals(type)) { + BsSgcSzGcda bsSgcSzGcda = bsSgcSzGcdaService.selectByWagaCode(code); + ObjectInfoDto objectInfoDto = new ObjectInfoDto(); + objectInfoDto.setCode(bsSgcSzGcda.getWagaCode()); + objectInfoDto.setName(bsSgcSzGcda.getWagaName()); + objectInfoDto.setAdcd(bsSgcSzGcda.getAdcd()); + objectInfoDto.setGrad(syDictService.get("building_level", bsSgcSzGcda.getEngScal()).getDictLabel()); + } + return Response.fail(); + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectInfoDto.java b/shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectInfoDto.java new file mode 100644 index 00000000..348c22e4 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/common/dto/ObjectInfoDto.java @@ -0,0 +1,30 @@ +package com.kms.yxgh.common.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName: ObjectInfoDto + * @Description: TODO + * @Date: 2024/3/19 下午5:19 + * * + * @author: hxh + * @version: 1.0 + */ + +@Data +@ApiModel(value = "对象信息") +public class ObjectInfoDto { + + @ApiModelProperty("编码") + private String code; + @ApiModelProperty("名称") + private String name; + @ApiModelProperty("行政区划") + private String adcd; + @ApiModelProperty("所属河流") + private String riverLocation; + @ApiModelProperty("级别") + private String grad; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/service/SyDictService.java b/shuili-system/src/main/java/com/kms/yxgh/common/service/SyDictService.java new file mode 100644 index 00000000..3b1b355a --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/common/service/SyDictService.java @@ -0,0 +1,58 @@ +package com.kms.yxgh.common.service; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.benmanes.caffeine.cache.Caffeine; +import com.github.benmanes.caffeine.cache.LoadingCache; +import com.kms.system.mapper.SysDictDataMapper; +import com.shuili.common.core.domain.entity.SysDictData; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.io.Serializable; +import java.util.concurrent.TimeUnit; + +/** + * @ClassName: SyDictService + * @Description: TODO + * @Date: 2024/3/19 下午5:23 + * * + * @author: hxh + * @version: 1.0 + */ + +@Service +@RequiredArgsConstructor +public class SyDictService { + + + private final SysDictDataMapper dictDataMapper; + + private LoadingCache dictDataCache; + + @PostConstruct + private void init() { + this.dictDataCache = Caffeine.newBuilder() + .maximumSize(1000) + .expireAfterWrite(10, TimeUnit.MINUTES) + .build(key -> dictDataMapper.selectOne(Wrappers.lambdaQuery() + .eq(SysDictData::getDictType, key.getDictType()) + .eq(SysDictData::getDictValue, key.getDictValue()))); + } + + public SysDictData get(String dictType, String dictValue) { + return dictDataCache.get(new DictKey(dictType, dictValue)); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + private static class DictKey implements Serializable { + private String dictType; + private String dictValue; + } + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/service/WarningService.java b/shuili-system/src/main/java/com/kms/yxgh/common/service/WarningService.java index f96a735a..ac844efc 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/service/WarningService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/service/WarningService.java @@ -4,9 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.github.benmanes.caffeine.cache.Caffeine; -import com.github.benmanes.caffeine.cache.LoadingCache; -import com.kms.system.mapper.SysDictDataMapper; import com.kms.yxgh.common.domain.DeviceCheckingRecordView; import com.kms.yxgh.common.dto.WarningDto; import com.kms.yxgh.common.dto.WarningQueDto; @@ -17,19 +14,13 @@ import com.kms.yxgh.util.BeanCopyUtils; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.core.domain.entity.SysDictData; import com.shuili.common.utils.StringUtils; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; import lombok.RequiredArgsConstructor; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; -import javax.annotation.PostConstruct; -import java.io.Serializable; import java.util.Calendar; import java.util.Date; import java.util.Optional; -import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -46,19 +37,7 @@ import java.util.stream.Collectors; public class WarningService { private final WarningMapper warningMapper; - private final SysDictDataMapper dictDataMapper; - - private LoadingCache dictDataCache; - - @PostConstruct - private void init() { - this.dictDataCache = Caffeine.newBuilder() - .maximumSize(1000) - .expireAfterWrite(10, TimeUnit.MINUTES) - .build(key -> dictDataMapper.selectOne(Wrappers.lambdaQuery() - .eq(SysDictData::getDictType, key.getDictType()) - .eq(SysDictData::getDictValue, key.getDictValue()))); - } + private final SyDictService dictDataCache; public IPage selectPage(SearchParam sp) { Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); @@ -103,7 +82,7 @@ public class WarningService { } else if (WarningStatisticQueDto.StatisticType.WARNING_TYPE.equals(sp.getType())) { iPage = warningMapper.statisticByWarningType(page, sp); warningStatisticDto.setStatistics(iPage.getRecords().stream().peek(item -> { - SysDictData dictData = dictDataCache.get(new DictKey("xc_warnning_type", item.getCode())); + SysDictData dictData = dictDataCache.get("xc_warnning_type", item.getCode()); if (dictData != null) { item.setName(dictData.getDictLabel()); } @@ -118,12 +97,5 @@ public class WarningService { return warningStatisticDto; } - @Data - @AllArgsConstructor - @NoArgsConstructor - private static class DictKey implements Serializable { - private String dictType; - private String dictValue; - } }