From eb46df2d86ceeb13cbaf4ec1cd7c7754b1679172 Mon Sep 17 00:00:00 2001 From: xiachao Date: Tue, 20 Aug 2024 10:53:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E7=BD=91=E4=BE=A7=E7=9C=8B=E6=9D=BF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pub/controller/PubCockpitController.java | 47 +++++- .../carbon/pub/dto/CarbonPubSupplierDTO.java | 1 + .../carbon/pub/dto/CockpitEnergyInfo.java | 16 ++ .../carbon/pub/dto/CockpitEnterpriseInfo.java | 6 +- .../pub/dto/CockpitProductionCarbon.java | 32 ++++ .../carbon/pub/dto/SupplierStatisticsDto.java | 40 +++++ .../pub/entity/CarbonPubSupplierEntity.java | 4 + .../carbon/pub/mapper/PubCockpitMapper.java | 6 + .../carbon/pub/service/PubCockpitService.java | 7 + .../service/impl/PubCockpitServiceImpl.java | 40 +++++ .../resources/mapper/PubCockpitMapper.xml | 140 ++++++++++++++++++ 11 files changed, 334 insertions(+), 5 deletions(-) create mode 100644 modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnergyInfo.java create mode 100644 modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitProductionCarbon.java create mode 100644 modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/SupplierStatisticsDto.java diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/controller/PubCockpitController.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/controller/PubCockpitController.java index 413a4eb..2410b30 100644 --- a/modules/carbon-public/src/main/java/com/thing/carbon/pub/controller/PubCockpitController.java +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/controller/PubCockpitController.java @@ -1,22 +1,28 @@ package com.thing.carbon.pub.controller; +import com.thing.carbon.pub.dto.CarbonPubSupplierProduct; import com.thing.carbon.pub.dto.CockpitEnterpriseInfo; import com.thing.carbon.pub.dto.CockpitStatisticsDto; +import com.thing.carbon.pub.dto.SupplierStatisticsDto; +import com.thing.carbon.pub.service.CarbonPubSupplierService; import com.thing.carbon.pub.service.PubCockpitService; +import com.thing.carbontrack.screen.dto.SimpleProductionCarbon; +import com.thing.common.core.web.response.PageData; import com.thing.common.core.web.response.Result; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; 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 org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** - * 企业注册 + * 公共服务侧大屏看板 * * @author xc * @since 3.0 2024-07-09 @@ -30,6 +36,9 @@ public class PubCockpitController { @Autowired private PubCockpitService pubCockpitService; + @Autowired + private CarbonPubSupplierService carbonPubSupplierService; + @GetMapping("list") @Operation(summary="左上角和地图得企业列表") public Result> list(){ @@ -44,5 +53,35 @@ public class PubCockpitController { return new Result().ok(statisticsDto); } + @GetMapping("productList") + @Operation(summary="右上角。企业产品碳足迹列表") + @Parameters({ + @Parameter(name = "id", description = "左侧列表选中得企业id", required = true), + }) + public Result> detailProduct(@Parameter(hidden = true) @RequestParam Map params){ + PageData data = carbonPubSupplierService.handleDetailProduct(params); + return new Result>().ok(data); + } + + + + @GetMapping("supplierStatistics") + @Operation(summary="左下角,企业八个统计") + @Parameters({ + @Parameter(name = "code", description = "左侧列表选中得企业code", required = true), + }) + public Result supplierStatistics(@Parameter(hidden = true) @RequestParam Map params){ + SupplierStatisticsDto data = pubCockpitService.supplierStatistics(params); + return new Result().ok(data); + } + + @GetMapping("trend/{productId}") + @Operation(summary = "右下角,产品碳足迹趋势,传入右上角选中的产品id") + public Result> getCarbonTrend( + @PathVariable("productId") Long productId) { + List data = pubCockpitService.getCarbonTrend(productId); + return new Result>().ok(data); + } + } diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CarbonPubSupplierDTO.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CarbonPubSupplierDTO.java index 86a339f..a56f537 100644 --- a/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CarbonPubSupplierDTO.java +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CarbonPubSupplierDTO.java @@ -48,4 +48,5 @@ public class CarbonPubSupplierDTO implements Serializable { @Schema(description = "更新时间") private Long updateDate; + private String supplierJson; } \ No newline at end of file diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnergyInfo.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnergyInfo.java new file mode 100644 index 0000000..718dc50 --- /dev/null +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnergyInfo.java @@ -0,0 +1,16 @@ +package com.thing.carbon.pub.dto; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "能源数据实时采集-数采模块 数采设备类型名称 电,天然气等") +public class CockpitEnergyInfo { + + @Schema(description = "数采设备类型") + private String name; + @Schema(description = "数量") + private Long number; + +} \ No newline at end of file diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnterpriseInfo.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnterpriseInfo.java index 1ccd86a..ea272dd 100644 --- a/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnterpriseInfo.java +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnterpriseInfo.java @@ -11,9 +11,13 @@ import java.math.BigDecimal; @Data @Schema(description = "国网侧驾驶舱企业信息") public class CockpitEnterpriseInfo { + + @Schema(description = "企业id,供应商id") + private Long id; + @Schema(description = "企业名称") private String name; - @Schema(description = "企业编码") + @Schema(description = "企业编码 也就是tenant_code") private String code; @Schema(description = "企业区域id") private String regionId; diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitProductionCarbon.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitProductionCarbon.java new file mode 100644 index 0000000..f543bc0 --- /dev/null +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitProductionCarbon.java @@ -0,0 +1,32 @@ +package com.thing.carbon.pub.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author siyang + * @date 2024/6/27 09:38 + * @description 简单产品碳足迹 + */ +@Data +@Schema(description = "简单产品碳足迹") +public class CockpitProductionCarbon { + + @Schema(description = "产品id") + private Long productId; + + @Schema(description = "产品名称") + private String productName; + + @Schema(description = "批次号") + private String prCode; + + @Schema(description = "碳足迹值") + private BigDecimal carbon; + + @Schema(description = "工单日期") + private Date prDate; +} diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/SupplierStatisticsDto.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/SupplierStatisticsDto.java new file mode 100644 index 0000000..09c72bf --- /dev/null +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/SupplierStatisticsDto.java @@ -0,0 +1,40 @@ +package com.thing.carbon.pub.dto; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "国网侧驾驶舱左下角 企业统计信息") +public class SupplierStatisticsDto { + + + @Schema(description = "碳排因子库调用次数") + private Long carbonLibCount; + + @Schema(description = "工艺模型调用次数") + private Long processCount; + + @Schema(description = "计算结果共享条数") + private Long computedShareCount; + + @Schema(description = "工艺模型共享条数") + private Long processShareCount; + + @Schema(description = "能源数据实时采集-数采模块") + private List cockpitEnergyInfo; + + @Schema(description = "生产系统对接套数") + private Long systemCount= 1L; + + @Schema(description = "对接数据量条数") + private Long dataCount; + + + + + + +} diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/entity/CarbonPubSupplierEntity.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/entity/CarbonPubSupplierEntity.java index f0a9c73..6e53086 100644 --- a/modules/carbon-public/src/main/java/com/thing/carbon/pub/entity/CarbonPubSupplierEntity.java +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/entity/CarbonPubSupplierEntity.java @@ -50,4 +50,8 @@ public class CarbonPubSupplierEntity implements Serializable { * 剩余积分 */ private Integer points; + + + + private String supplierJson; } \ No newline at end of file diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/mapper/PubCockpitMapper.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/mapper/PubCockpitMapper.java index 6997c98..2e5ee88 100644 --- a/modules/carbon-public/src/main/java/com/thing/carbon/pub/mapper/PubCockpitMapper.java +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/mapper/PubCockpitMapper.java @@ -2,6 +2,8 @@ package com.thing.carbon.pub.mapper; import com.thing.carbon.pub.dto.CockpitEnterpriseInfo; +import com.thing.carbon.pub.dto.CockpitEnergyInfo; +import com.thing.carbontrack.screen.dto.SimpleProductionCarbon; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -10,4 +12,8 @@ import java.util.List; @Mapper public interface PubCockpitMapper { List cockpitEnterpriseInfoList(); + + List supplierStatistics(Long tenantCode); + + List getCarbonTrend(Long productId); } diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/PubCockpitService.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/PubCockpitService.java index a06370d..f95ef7f 100644 --- a/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/PubCockpitService.java +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/PubCockpitService.java @@ -2,8 +2,11 @@ package com.thing.carbon.pub.service; import com.thing.carbon.pub.dto.CockpitEnterpriseInfo; import com.thing.carbon.pub.dto.CockpitStatisticsDto; +import com.thing.carbon.pub.dto.SupplierStatisticsDto; +import com.thing.carbontrack.screen.dto.SimpleProductionCarbon; import java.util.List; +import java.util.Map; public interface PubCockpitService { @@ -11,4 +14,8 @@ public interface PubCockpitService { List cockpitEnterpriseInfoList(); CockpitStatisticsDto statistics(); + + SupplierStatisticsDto supplierStatistics(Map params); + + List getCarbonTrend(Long productId); } diff --git a/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/impl/PubCockpitServiceImpl.java b/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/impl/PubCockpitServiceImpl.java index e808022..7e4a5c8 100644 --- a/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/impl/PubCockpitServiceImpl.java +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/impl/PubCockpitServiceImpl.java @@ -1,17 +1,28 @@ package com.thing.carbon.pub.service.impl; +import com.alibaba.fastjson.JSONArray; import com.mybatisflex.core.query.QueryWrapper; import com.thing.carbon.pub.dto.CockpitEnterpriseInfo; import com.thing.carbon.pub.dto.CockpitStatisticsDto; +import com.thing.carbon.pub.dto.CockpitEnergyInfo; +import com.thing.carbon.pub.dto.SupplierStatisticsDto; +import com.thing.carbon.pub.entity.CarbonPubSupplierEntity; import com.thing.carbon.pub.mapper.*; import com.thing.carbon.pub.service.PubCockpitService; +import com.thing.carbontrack.screen.dto.SimpleProductionCarbon; +import com.thing.common.core.web.response.Result; +import io.swagger.v3.oas.annotations.Operation; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.List; +import java.util.Map; @Service @@ -82,4 +93,33 @@ public class PubCockpitServiceImpl implements PubCockpitService { return dto; } + @Override + public SupplierStatisticsDto supplierStatistics(Map params) { + SupplierStatisticsDto dto = new SupplierStatisticsDto(); + + Long tenantCode = MapUtils.getLong(params, "code"); + List infoList = pubCockpitMapper.supplierStatistics(tenantCode); + infoList.forEach(temp -> { + switch (temp.getName()) { + case "消费碳足迹因子" -> dto.setCarbonLibCount(temp.getNumber()); + case "过程数据共享", "结果数据共享" -> dto.setProcessShareCount(temp.getNumber()); + case "模型共享" -> dto.setComputedShareCount(temp.getNumber()); + case "模型点击" -> dto.setProcessCount(temp.getNumber()); + } + }); + Long carbonCount = carbonPubProductionResultMapper.selectCountByQuery(QueryWrapper.create().eq("tenant_code", tenantCode)); + dto.setDataCount(carbonCount); + + CarbonPubSupplierEntity entity = carbonPubSupplierMapper.selectOneByQuery(QueryWrapper.create().eq("code", tenantCode)); + String json = entity.getSupplierJson(); + + dto.setCockpitEnergyInfo(JSONArray.parseArray(json, CockpitEnergyInfo.class)); + return dto; + } + + @Override + public List getCarbonTrend(Long productId) { + return pubCockpitMapper.getCarbonTrend(productId); + } + } diff --git a/modules/carbon-public/src/main/resources/mapper/PubCockpitMapper.xml b/modules/carbon-public/src/main/resources/mapper/PubCockpitMapper.xml index 1a5ebcd..9e4d499 100644 --- a/modules/carbon-public/src/main/resources/mapper/PubCockpitMapper.xml +++ b/modules/carbon-public/src/main/resources/mapper/PubCockpitMapper.xml @@ -5,6 +5,7 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file