Browse Source

国网侧看板接口提交

thing_master
xiachao 1 year ago
parent
commit
eb46df2d86
  1. 47
      modules/carbon-public/src/main/java/com/thing/carbon/pub/controller/PubCockpitController.java
  2. 1
      modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CarbonPubSupplierDTO.java
  3. 16
      modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnergyInfo.java
  4. 6
      modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnterpriseInfo.java
  5. 32
      modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitProductionCarbon.java
  6. 40
      modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/SupplierStatisticsDto.java
  7. 4
      modules/carbon-public/src/main/java/com/thing/carbon/pub/entity/CarbonPubSupplierEntity.java
  8. 6
      modules/carbon-public/src/main/java/com/thing/carbon/pub/mapper/PubCockpitMapper.java
  9. 7
      modules/carbon-public/src/main/java/com/thing/carbon/pub/service/PubCockpitService.java
  10. 40
      modules/carbon-public/src/main/java/com/thing/carbon/pub/service/impl/PubCockpitServiceImpl.java
  11. 140
      modules/carbon-public/src/main/resources/mapper/PubCockpitMapper.xml

47
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<CockpitEnterpriseInfo>> list(){
@ -44,5 +53,35 @@ public class PubCockpitController {
return new Result<CockpitStatisticsDto>().ok(statisticsDto);
}
@GetMapping("productList")
@Operation(summary="右上角。企业产品碳足迹列表")
@Parameters({
@Parameter(name = "id", description = "左侧列表选中得企业id", required = true),
})
public Result<PageData<CarbonPubSupplierProduct>> detailProduct(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
PageData<CarbonPubSupplierProduct> data = carbonPubSupplierService.handleDetailProduct(params);
return new Result<PageData<CarbonPubSupplierProduct>>().ok(data);
}
@GetMapping("supplierStatistics")
@Operation(summary="左下角,企业八个统计")
@Parameters({
@Parameter(name = "code", description = "左侧列表选中得企业code", required = true),
})
public Result<SupplierStatisticsDto> supplierStatistics(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
SupplierStatisticsDto data = pubCockpitService.supplierStatistics(params);
return new Result<SupplierStatisticsDto>().ok(data);
}
@GetMapping("trend/{productId}")
@Operation(summary = "右下角,产品碳足迹趋势,传入右上角选中的产品id")
public Result<List<SimpleProductionCarbon>> getCarbonTrend(
@PathVariable("productId") Long productId) {
List<SimpleProductionCarbon> data = pubCockpitService.getCarbonTrend(productId);
return new Result<List<SimpleProductionCarbon>>().ok(data);
}
}

1
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;
}

16
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;
}

6
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;

32
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;
}

40
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> cockpitEnergyInfo;
@Schema(description = "生产系统对接套数")
private Long systemCount= 1L;
@Schema(description = "对接数据量条数")
private Long dataCount;
}

4
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;
}

6
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<CockpitEnterpriseInfo> cockpitEnterpriseInfoList();
List<CockpitEnergyInfo> supplierStatistics(Long tenantCode);
List<SimpleProductionCarbon> getCarbonTrend(Long productId);
}

7
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<CockpitEnterpriseInfo> cockpitEnterpriseInfoList();
CockpitStatisticsDto statistics();
SupplierStatisticsDto supplierStatistics(Map<String, Object> params);
List<SimpleProductionCarbon> getCarbonTrend(Long productId);
}

40
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<String, Object> params) {
SupplierStatisticsDto dto = new SupplierStatisticsDto();
Long tenantCode = MapUtils.getLong(params, "code");
List<CockpitEnergyInfo> 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<SimpleProductionCarbon> getCarbonTrend(Long productId) {
return pubCockpitMapper.getCarbonTrend(productId);
}
}

140
modules/carbon-public/src/main/resources/mapper/PubCockpitMapper.xml

@ -5,6 +5,7 @@
<select id="cockpitEnterpriseInfoList" resultType="com.thing.carbon.pub.dto.CockpitEnterpriseInfo">
SELECT
cps.id,
cps.NAME,
cps.code,
cps.region_id,
@ -35,5 +36,144 @@
) t3 ON cps.code = t3.tenant_code
LEFT JOIN sys_tenant_detail td on cps.code = td.id
</select>
<select id="supplierStatistics" resultType="com.thing.carbon.pub.dto.CockpitEnergyInfo">
SELECT
"type" AS NAME,
"count" ( TYPE ) AS NUMBER
FROM
carbon_pub_points_logs
WHERE
tenant_code =#{tenantCode}
GROUP BY
TYPE
</select>
<select id="getCarbonTrend" resultType="com.thing.carbon.pub.dto.CockpitProductionCarbon">
SELECT
*
FROM
(
SELECT
product_id,
product_name,
pr_code,
finish_time AS pr_date,
type1_carbon_avg + type1_usage_avg + type2_carbon_avg + type3_carbon_avg + type4_carbon_avg + type5_carbon_avg + type6_carbon_avg + type6_fq_carbon_avg AS carbon,
rk
FROM
(
SELECT
product_id,
product_name,
pr_code,
finish_time,
SUM ( type1_carbon_avg ) AS type1_carbon_avg,
SUM ( type1_usage_avg ) AS type1_usage_avg,
SUM ( type2_carbon_avg ) AS type2_carbon_avg,
SUM ( type3_carbon_avg ) AS type3_carbon_avg,
SUM ( type4_carbon_avg ) AS type4_carbon_avg,
SUM ( type5_carbon_avg ) AS type5_carbon_avg,
SUM ( type6_carbon_avg ) AS type6_carbon_avg,
SUM ( type6_fq_carbon_avg ) AS type6_fq_carbon_avg,
ROW_NUMBER ( ) OVER ( PARTITION BY product_id ORDER BY finish_time DESC ) AS rk
FROM
(
SELECT
product_id,
product_name,
pr_code,
carbon_type,
finish_time,
CASE
carbon_type
WHEN '1' THEN
carbon_avg ELSE 0
END AS type1_carbon_avg,
CASE
carbon_type
WHEN '1' THEN
usage_avg ELSE 0
END AS type1_usage_avg,
CASE
carbon_type
WHEN '2' THEN
carbon_avg ELSE 0
END AS type2_carbon_avg,
CASE
carbon_type
WHEN '3' THEN
carbon_avg ELSE 0
END AS type3_carbon_avg,
CASE
carbon_type
WHEN '4' THEN
carbon_avg ELSE 0
END AS type4_carbon_avg,
CASE
carbon_type
WHEN '5' THEN
carbon_avg ELSE 0
END AS type5_carbon_avg,
CASE
carbon_type
WHEN '6' THEN
carbon_avg ELSE 0
END AS type6_carbon_avg,
CASE
carbon_type
WHEN '6' THEN
fq_carbon_avg ELSE 0
END AS type6_fq_carbon_avg
FROM
(
SELECT
product_id AS product_id,
product_name AS product_name,
pr_code,
carbon_type,
finish_time,
SUM ( carbon_avg ) AS carbon_avg,
SUM ( usage_avg ) AS usage_avg,
SUM ( fq_carbon_avg ) AS fq_carbon_avg
FROM
carbon_pub_production_result
where product_id = #{productId}
GROUP BY
product_id,
product_name,
pr_code,
finish_time,
carbon_type
) AS t1
) AS t2
GROUP BY
product_id,
product_name,
pr_code,
finish_time
) AS t3
) AS t4
where product_id = #{productId}
ORDER BY
pr_date DESC
LIMIT 10
</select>
</mapper>
Loading…
Cancel
Save