From b76d3a80197e620e380a821da35380912e758f90 Mon Sep 17 00:00:00 2001 From: siyang <2337720667@qq.com> Date: Tue, 13 Aug 2024 14:20:57 +0800 Subject: [PATCH 1/8] =?UTF-8?q?filter=5Frule=5Fdetail=E8=A1=A8=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- help/sql/ddl_1.0.0.sql | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/help/sql/ddl_1.0.0.sql b/help/sql/ddl_1.0.0.sql index 476c8e2..4590e81 100644 --- a/help/sql/ddl_1.0.0.sql +++ b/help/sql/ddl_1.0.0.sql @@ -2018,6 +2018,53 @@ COMMENT ON COLUMN "public"."filter_rule"."updater" IS '更新人'; COMMENT ON COLUMN "public"."filter_rule"."update_date" IS '更新时间'; COMMENT ON TABLE "public"."filter_rule" IS '过滤规则表'; +-- ---------------------------- +-- Table structure for filter_rule_detail +-- ---------------------------- +create table if not exists public.filter_rule_detail +( + id bigint primary key, + filter_rule_id bigint not null, + thing_name varchar(100), + thing_code varchar(100) not null, + attr_name varchar(100), + attr_code varchar(100) not null, + attr_alias varchar(10), + data_type integer, + agg_type varchar(10), + agg_interval integer, + timeunit varchar(20), + tenant_code bigint not null, + company_id bigint, + dept_id bigint, + creator bigint, + create_date bigint, + updater bigint, + update_date bigint + ); + +comment on table public.filter_rule_detail is '过滤规则详情表'; +comment on column public.filter_rule_detail.id is '主键'; +comment on column public.filter_rule_detail.filter_rule_id is '过滤规则id'; +comment on column public.filter_rule_detail.thing_name is '物名称'; +comment on column public.filter_rule_detail.thing_code is '物编码'; +comment on column public.filter_rule_detail.attr_name is '属性名称'; +comment on column public.filter_rule_detail.attr_code is '属性编码'; +comment on column public.filter_rule_detail.attr_alias is '属性在计算公式中的别名'; +comment on column public.filter_rule_detail.data_type is '数据类型:1-最新,2-最近, 3-区间'; +comment on column public.filter_rule_detail.agg_type is '聚合类型:SUM|AVG|MAX|MIN|COUNT'; +comment on column public.filter_rule_detail.agg_interval is '聚合时间间隔'; +comment on column public.filter_rule_detail.timeunit is '聚合时间单位:MINUTE|HOUR|DAY|MONTH'; +comment on column public.filter_rule_detail.tenant_code is '租户编码'; +comment on column public.filter_rule_detail.company_id is '企业id'; +comment on column public.filter_rule_detail.dept_id is '部门id'; +comment on column public.filter_rule_detail.creator is '创建人'; +comment on column public.filter_rule_detail.create_date is '创建时间'; +comment on column public.filter_rule_detail.updater is '更新人'; +comment on column public.filter_rule_detail.update_date is '更新时间'; + + + -- ---------------------------- -- Table structure for gateway_component -- ---------------------------- From ff724f03c1dfefb0e65512ac058c393790187885 Mon Sep 17 00:00:00 2001 From: xiachao Date: Tue, 13 Aug 2024 14:46:09 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=9B=BD=E7=BD=91=E4=BE=A7=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF=EF=BC=8C=E4=BB=A3=E7=A0=81=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 | 41 ++++++++++++++++++ .../carbon/pub/dto/CockpitEnterpriseInfo.java | 34 +++++++++++++++ .../carbon/pub/mapper/PubCockpitMapper.java | 13 ++++++ .../carbon/pub/service/PubCockpitService.java | 11 +++++ .../service/impl/PubCockpitServiceImpl.java | 42 +++++++++++++++++++ .../mapper/CarbonPubSupplierMapper.xml | 2 +- .../resources/mapper/PubCockpitMapper.xml | 39 +++++++++++++++++ .../thing/cqc/rpcService/JsonCryptoUtils.java | 17 ++++++-- 8 files changed, 195 insertions(+), 4 deletions(-) create mode 100644 modules/carbon-public/src/main/java/com/thing/carbon/pub/controller/PubCockpitController.java create mode 100644 modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnterpriseInfo.java create mode 100644 modules/carbon-public/src/main/java/com/thing/carbon/pub/mapper/PubCockpitMapper.java create mode 100644 modules/carbon-public/src/main/java/com/thing/carbon/pub/service/PubCockpitService.java create mode 100644 modules/carbon-public/src/main/java/com/thing/carbon/pub/service/impl/PubCockpitServiceImpl.java create mode 100644 modules/carbon-public/src/main/resources/mapper/PubCockpitMapper.xml 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 new file mode 100644 index 0000000..3203954 --- /dev/null +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/controller/PubCockpitController.java @@ -0,0 +1,41 @@ +package com.thing.carbon.pub.controller; + + +import com.thing.carbon.pub.dto.CockpitEnterpriseInfo; +import com.thing.carbon.pub.service.PubCockpitService; +import com.thing.common.core.web.response.Result; +import io.swagger.v3.oas.annotations.Operation; +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 java.util.List; + +/** + * 企业注册 + * + * @author xc + * @since 3.0 2024-07-09 + */ +@RestController +@RequestMapping("v2/pub/cockpit") +@Tag(name="公共服务侧大屏看板") +@RequiredArgsConstructor +public class PubCockpitController { + + @Autowired + private PubCockpitService pubCockpitService; + + @GetMapping("list") + @Operation(summary="分页") + public Result> list(){ + List list = pubCockpitService.cockpitEnterpriseInfoList(); + return new Result>().ok(list); + } + + + +} 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 new file mode 100644 index 0000000..1ccd86a --- /dev/null +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/dto/CockpitEnterpriseInfo.java @@ -0,0 +1,34 @@ +package com.thing.carbon.pub.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 企业列表详情 + */ +@Data +@Schema(description = "国网侧驾驶舱企业信息") +public class CockpitEnterpriseInfo { + @Schema(description = "企业名称") + private String name; + @Schema(description = "企业编码") + private String code; + @Schema(description = "企业区域id") + private String regionId; + @Schema(description = "碳足迹结果数量") + private String recordsCount; + @Schema(description = "产品数量") + private String productCount; + @Schema(description = "经纬度原始值") + private String lngLatStr; + @Schema(description = "经度") + private String lng; + @Schema(description = "纬度") + private String lat; + @Schema(description = "产品分类") + private String productType; + @Schema(description = "平均产品碳足迹") + private BigDecimal avgCarBon; +} 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 new file mode 100644 index 0000000..6997c98 --- /dev/null +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/mapper/PubCockpitMapper.java @@ -0,0 +1,13 @@ +package com.thing.carbon.pub.mapper; + + +import com.thing.carbon.pub.dto.CockpitEnterpriseInfo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + + +@Mapper +public interface PubCockpitMapper { + List cockpitEnterpriseInfoList(); +} 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 new file mode 100644 index 0000000..f1d7bf5 --- /dev/null +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/PubCockpitService.java @@ -0,0 +1,11 @@ +package com.thing.carbon.pub.service; + +import com.thing.carbon.pub.dto.CockpitEnterpriseInfo; + +import java.util.List; + +public interface PubCockpitService { + + + List cockpitEnterpriseInfoList(); +} 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 new file mode 100644 index 0000000..eb1ccfd --- /dev/null +++ b/modules/carbon-public/src/main/java/com/thing/carbon/pub/service/impl/PubCockpitServiceImpl.java @@ -0,0 +1,42 @@ +package com.thing.carbon.pub.service.impl; + +import com.thing.carbon.pub.dto.CockpitEnterpriseInfo; +import com.thing.carbon.pub.mapper.CarbonPubSupplierMapper; +import com.thing.carbon.pub.mapper.PubCockpitMapper; +import com.thing.carbon.pub.service.PubCockpitService; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; + + +@Service +public class PubCockpitServiceImpl implements PubCockpitService { + + + @Autowired + private PubCockpitMapper pubCockpitMapper; + + @Autowired + private CarbonPubSupplierMapper carbonPubSupplierMapper; + + + @Override + public List cockpitEnterpriseInfoList() { + List infoList = pubCockpitMapper.cockpitEnterpriseInfoList(); + infoList.forEach(temp->{ + if(ObjectUtils.isNotEmpty(temp.getLngLatStr())){ + String[] strs = temp.getLngLatStr().split(","); + temp.setLng(strs[0]); + temp.setLat(strs[1]); + } + //补全平均产品碳足迹值 + BigDecimal avgCarbon = carbonPubSupplierMapper.avgCarbonOfAllProduct(Long.parseLong(temp.getCode()),null,null); + temp.setAvgCarBon(avgCarbon.setScale(4, RoundingMode.UP)); + }); + return infoList; + } +} diff --git a/modules/carbon-public/src/main/resources/mapper/CarbonPubSupplierMapper.xml b/modules/carbon-public/src/main/resources/mapper/CarbonPubSupplierMapper.xml index 452f014..980dd5b 100644 --- a/modules/carbon-public/src/main/resources/mapper/CarbonPubSupplierMapper.xml +++ b/modules/carbon-public/src/main/resources/mapper/CarbonPubSupplierMapper.xml @@ -42,7 +42,7 @@ + SELECT + cps.NAME, + cps.code, + cps.region_id, + COALESCE ( t2.records_count, 0 ) AS records_count, + COALESCE ( t3.product_count, 0 ) AS product_count, + td.lng_lat as lngLatStr, + TEMP.product_type + FROM + carbon_pub_supplier cps + LEFT JOIN ( SELECT string_agg ( DISTINCT industry_sub, ',' ) AS product_type, tenant_code FROM iot_carbon_production_variety GROUP BY tenant_code ) TEMP ON cps.code = TEMP.tenant_code + LEFT JOIN ( + SELECT SUM + ( pr_unit ) AS records_count, + tenant_code + FROM + ( SELECT COUNT ( DISTINCT pr_code ) AS pr_unit, tenant_code, pr_code FROM carbon_pub_production_result GROUP BY product_id, pr_code, tenant_code ) t1 + GROUP BY + tenant_code + ) t2 ON cps.code = t2.tenant_code + LEFT JOIN ( + SELECT SUM + ( product_count ) AS product_count, + tenant_code + FROM + ( SELECT COUNT ( DISTINCT product_id ) AS product_count, tenant_code FROM carbon_pub_production_result GROUP BY product_id, tenant_code ) t1 + GROUP BY + tenant_code + ) t3 ON cps.code = t3.tenant_code + LEFT JOIN sys_tenant_detail td on cps.code = td.id + + + \ No newline at end of file diff --git a/modules/cqc-service/src/main/java/com/thing/cqc/rpcService/JsonCryptoUtils.java b/modules/cqc-service/src/main/java/com/thing/cqc/rpcService/JsonCryptoUtils.java index 35f43a4..5612a7c 100644 --- a/modules/cqc-service/src/main/java/com/thing/cqc/rpcService/JsonCryptoUtils.java +++ b/modules/cqc-service/src/main/java/com/thing/cqc/rpcService/JsonCryptoUtils.java @@ -25,8 +25,19 @@ public class JsonCryptoUtils { return new String(decryptedBytes); } - - - +// +// +// public static void main(String[] args) { +// try { +// +// String encryptedJson = "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"; +// // 解密 +// String decryptedJson = decryptJson(encryptedJson, SECRETKEY); +// System.out.println("Decrypted JSON: " + decryptedJson); +// +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } } From 5738872b14be7cda07bf52b6d2f82f62772ba10b Mon Sep 17 00:00:00 2001 From: lishuai Date: Tue, 13 Aug 2024 16:11:52 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E5=A4=B1=E6=95=88=E4=BF=AE=E5=A4=8D=202024?= =?UTF-8?q?=E5=B9=B48=E6=9C=8813=E6=97=A516:11:49?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alarm/service/impl/AlarmRuleLogServiceImpl.java | 4 +++- .../alarm/service/impl/AlarmRuleServiceImpl.java | 11 +++++++++-- .../main/resources/mapper/AlarmRuleEntityMapper.xml | 6 ++++++ .../src/main/resources/mapper/AlarmRuleLogMapper.xml | 6 +++--- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmRuleLogServiceImpl.java b/modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmRuleLogServiceImpl.java index 8563508..f6cea1e 100644 --- a/modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmRuleLogServiceImpl.java +++ b/modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmRuleLogServiceImpl.java @@ -17,6 +17,7 @@ import com.thing.alarm.configuration.event.LogSaveActionEvent; import com.thing.common.core.enumeration.AlarmStatus; import com.thing.common.core.exception.SysException; import com.thing.common.core.utils.DateTimeUtils; +import com.thing.common.core.utils.PageUtils; import com.thing.common.core.web.response.PageData; import com.thing.common.orm.annotation.DataFilter; import com.thing.common.orm.service.impl.BaseServiceImpl; @@ -79,7 +80,8 @@ public class AlarmRuleLogServiceImpl extends BaseServiceImpl list = mapper.getList(params); fillExtraInfo(list); - return new PageData<>(list, count); + List alarmRuleLogDTOS = PageUtils.startPage(list, page, limit); + return new PageData<>(alarmRuleLogDTOS, count); } private List getThingCodesByPlantIds(Map params) { diff --git a/modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmRuleServiceImpl.java b/modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmRuleServiceImpl.java index e808447..48f528f 100644 --- a/modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmRuleServiceImpl.java @@ -98,10 +98,17 @@ public class AlarmRuleServiceImpl extends BaseServiceImpl params) { String thingName = (String) params.get("thingName"); - if (StringUtils.isBlank(thingName)) { + String thingId = (String) params.get("thingId"); + if (StringUtils.isBlank(thingName) && StringUtils.isBlank(thingId)) { return; } - paramsToLike(params, "thingName"); + if (StringUtils.isNotBlank(thingName)) { + paramsToLike(params, "thingName"); + } + if (StringUtils.isNotBlank(thingId)) { + List thingList = Arrays.stream(thingId.split(",")).map(Long::parseLong).toList(); + params.put("thingIds", thingList); + } List list = alarmRuleEntityService.getThingNameList(params); List collect = list.stream().map(AlarmRuleEntityDTO::getRuleId).distinct().collect(Collectors.toList()); params.put("ids", CollectionUtil.isNotEmpty(collect) ? collect : CollectionUtil.newArrayList(-1L)); diff --git a/modules/alarm/src/main/resources/mapper/AlarmRuleEntityMapper.xml b/modules/alarm/src/main/resources/mapper/AlarmRuleEntityMapper.xml index d8bd1c7..6295394 100644 --- a/modules/alarm/src/main/resources/mapper/AlarmRuleEntityMapper.xml +++ b/modules/alarm/src/main/resources/mapper/AlarmRuleEntityMapper.xml @@ -31,6 +31,12 @@ #{id} + + and a.thing_id in + + #{thingId} + + diff --git a/modules/alarm/src/main/resources/mapper/AlarmRuleLogMapper.xml b/modules/alarm/src/main/resources/mapper/AlarmRuleLogMapper.xml index 5acd7ba..5082a99 100644 --- a/modules/alarm/src/main/resources/mapper/AlarmRuleLogMapper.xml +++ b/modules/alarm/src/main/resources/mapper/AlarmRuleLogMapper.xml @@ -79,9 +79,9 @@ LEFT JOIN iot_thing_entity te ON ae.thing_id = te.id - - limit #{params.limit} offset #{params.offset} - + + +