From 04f16ee8ee73213d4b08101691b1c6f76bd94473 Mon Sep 17 00:00:00 2001
From: huangzj <826100833@qq.com>
Date: Mon, 4 Sep 2023 15:26:30 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BA=8B=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cs-device/cs-device-api/pom.xml | 6 ++
.../pojo/param/ProjectEquipmentQueryParm.java | 3 +
.../com/njcn/csdevice/pojo/vo/DevUserVO.java | 26 +++++++++
.../equipment/DeviceUserController.java | 15 ++++-
.../mapping/CsEquipmentDeliveryMapper.xml | 3 +
.../service/CsDeviceUserPOService.java | 5 +-
.../impl/CsDeviceUserPOServiceImpl.java | 42 +++++++++++---
.../handler/MqttMessageHandler.java | 58 +++++++++++++++----
.../csharmonic/mapper/CsEventPOMapper.java | 15 +++++
.../mapper/CsEventUserPOMapper.java | 15 +++++
.../mapper/mapping/CsEventPOMapper.xml | 18 ++++++
.../mapper/mapping/CsEventUserPOMapper.xml | 16 +++++
.../service/impl/StableDataServiceImpl.java | 1 +
13 files changed, 201 insertions(+), 22 deletions(-)
create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevUserVO.java
create mode 100644 cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventPOMapper.java
create mode 100644 cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java
create mode 100644 cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventPOMapper.xml
create mode 100644 cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml
diff --git a/cs-device/cs-device-api/pom.xml b/cs-device/cs-device-api/pom.xml
index 30b135d..b1b8a44 100644
--- a/cs-device/cs-device-api/pom.xml
+++ b/cs-device/cs-device-api/pom.xml
@@ -41,6 +41,12 @@
1.0.0
compile
+
+ com.njcn
+ user-api
+ 1.0.0
+ compile
+
UTF-8
diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/ProjectEquipmentQueryParm.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/ProjectEquipmentQueryParm.java
index 37969e1..45288e2 100644
--- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/ProjectEquipmentQueryParm.java
+++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/ProjectEquipmentQueryParm.java
@@ -34,4 +34,7 @@ public class ProjectEquipmentQueryParm {
@ApiModelProperty(value="项目类别")
private String projectType;
+
+ @ApiModelProperty(value="运行状态")
+ private String runStatus;
}
diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevUserVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevUserVO.java
new file mode 100644
index 0000000..ae20cc4
--- /dev/null
+++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevUserVO.java
@@ -0,0 +1,26 @@
+package com.njcn.csdevice.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.njcn.user.pojo.po.User;
+import java.util.List;
+
+/**
+ * Description:
+ * Date: 2023/7/5 15:09【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+
+@Data
+public class DevUserVO {
+ //
+ @ApiModelProperty(value = "devId")
+ private String devId;
+ private User masterUser;
+ private List subUsers;
+
+
+
+}
diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceUserController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceUserController.java
index 62dfd72..ea2c210 100644
--- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceUserController.java
+++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceUserController.java
@@ -8,6 +8,7 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.enums.DeviceOperate;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import com.njcn.csdevice.pojo.vo.DevCountVO;
+import com.njcn.csdevice.pojo.vo.DevUserVO;
import com.njcn.csdevice.service.CsDeviceUserPOService;
import com.njcn.web.advice.DeviceLog;
import com.njcn.web.controller.BaseController;
@@ -112,11 +113,21 @@ public class DeviceUserController extends BaseController {
@ApiOperation("取消分享")
@ApiImplicitParam(name = "eid", value = "设备Id", required = true)
@DeviceLog(operateType = DeviceOperate.CANCELSHARE)
- public HttpResult cancelShare(@RequestParam("eid") String eid){
+ public HttpResult cancelShare(@RequestParam("eid") String eid ,@RequestParam("userId") String userId){
String methodDescribe = getMethodDescribe("cancelShare");
+ Boolean flag = csDeviceUserPOService.cancelShare (eid,userId);
- Boolean flag = csDeviceUserPOService.cancelShare (eid);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON)
+ @PostMapping("/queryUserById")
+ @ApiOperation("设备主子用户关系")
+ @ApiImplicitParam(name = "devId", value = "设备Id", required = true)
+ public HttpResult queryUserById(@RequestParam("devId") String devId){
+ String methodDescribe = getMethodDescribe("queryUserById");
+
+ DevUserVO devUserVO = csDeviceUserPOService.queryUserById (devId);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, devUserVO, methodDescribe);
+ }
}
diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsEquipmentDeliveryMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsEquipmentDeliveryMapper.xml
index 779a433..e77dfd8 100644
--- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsEquipmentDeliveryMapper.xml
+++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsEquipmentDeliveryMapper.xml
@@ -61,6 +61,9 @@
AND a.id = #{projectEquipmentQueryParm.engineerId}
+
+ AND c.run_status = #{projectEquipmentQueryParm.engineerId}
+
and c.id in
#{item}
diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java
index debedd7..f731d73 100644
--- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java
+++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java
@@ -3,6 +3,7 @@ package com.njcn.csdevice.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import com.njcn.csdevice.pojo.vo.DevCountVO;
+import com.njcn.csdevice.pojo.vo.DevUserVO;
import java.util.List;
@@ -29,7 +30,7 @@ public interface CsDeviceUserPOService extends IService{
Boolean delete(String eid);
- Boolean cancelShare(String eid);
+ Boolean cancelShare(String eid,String userId);
/**
* @Description: 设备恢复
* @Param:
@@ -38,4 +39,6 @@ public interface CsDeviceUserPOService extends IService{
* @Date: 2023/7/27
*/
Boolean recovery(String eid);
+
+ DevUserVO queryUserById(String devId);
}
diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java
index c2e28bd..d22159c 100644
--- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java
+++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java
@@ -16,11 +16,14 @@ import com.njcn.csdevice.mapper.CsMarketDataMapper;
import com.njcn.csdevice.pojo.po.*;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import com.njcn.csdevice.pojo.vo.DevCountVO;
+import com.njcn.csdevice.pojo.vo.DevUserVO;
import com.njcn.csdevice.service.*;
import com.njcn.cswarn.api.CsEquipmentAlarmFeignClient;
import com.njcn.cswarn.pojo.parm.CsEquipmentAlarmParm;
import com.njcn.cswarn.pojo.vo.CsEquipmentAlarmVO;
+import com.njcn.user.api.UserFeignClient;
import com.njcn.user.enums.AppRoleEnum;
+import com.njcn.user.pojo.po.User;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -58,6 +61,9 @@ public class CsDeviceUserPOServiceImpl extends ServiceImpl list = this.lambdaQuery().eq(CsDeviceUserPO::getDeviceId, devId).eq(CsDeviceUserPO::getStatus, "1").list();
+ if (CollectionUtils.isEmpty(list)) {
+ throw new BusinessException(AlgorithmResponseEnum.DATA_ARRAY_MISSING);
+ }
+ List collect = list.stream().map(CsDeviceUserPO::getSubUserId).distinct().collect(Collectors.toList());
+ List data = userFeignClient.getUserByIdList(collect).getData();
+ String primaryUserId = list.get(0).getPrimaryUserId();
+ List subUser = data.stream().filter(temp -> !Objects.equals(temp.getId(), primaryUserId)).collect(Collectors.toList());
+ List primaryUser = data.stream().filter(temp -> Objects.equals(temp.getId(), primaryUserId)).collect(Collectors.toList());
+ DevUserVO devUser = new DevUserVO();
+ devUser.setDevId(devId);
+ devUser.setSubUsers(subUser);
+ devUser.setMasterUser(primaryUser.get(0));
+ return devUser;
+ }
}
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/handler/MqttMessageHandler.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/handler/MqttMessageHandler.java
index e30fc24..0868dc1 100644
--- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/handler/MqttMessageHandler.java
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/handler/MqttMessageHandler.java
@@ -27,6 +27,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.concurrent.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -75,6 +76,10 @@ public class MqttMessageHandler {
public void responseTopoData(String topic, @NamedValue("devId") String devId, MqttMessage message, @Payload String payload) {
List result = new ArrayList<>();
List tempList = new ArrayList<>();
+ ExecutorService executorService = new ThreadPoolExecutor(40, 400,
+ 1, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100, true),
+ Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy());
+ List>> resultList = new ArrayList< Future>>();
//1.查询拓扑图配置的指标:拓扑图扑图配置:7677f94c749dedaff30f911949cbd724
List data = csStatisticalSetFeignClient.queryStatisticalSelect("7677f94c749dedaff30f911949cbd724").getData();
@@ -86,21 +91,32 @@ public class MqttMessageHandler {
commonStatisticalQueryParam.setStatisticalId(temp.getId());
commonStatisticalQueryParam.setValueType("avg");
commonStatisticalQueryParam.setFrequency(i+"");
- List thdDataVOS = stableDataService.queryFisrtCommonStatistical(commonStatisticalQueryParam);
- tempList.addAll(thdDataVOS);
+ Future> listFuture= executorService.submit(new TaskWithResult(commonStatisticalQueryParam));
+ resultList.add(listFuture);
}
- }else {
- CommonStatisticalQueryParam commonStatisticalQueryParam = new CommonStatisticalQueryParam();
- commonStatisticalQueryParam.setDevId(devId);
- commonStatisticalQueryParam.setStatisticalId(temp.getId());
- commonStatisticalQueryParam.setValueType("avg");
- List thdDataVOS = stableDataService.queryFisrtCommonStatistical(commonStatisticalQueryParam);
- tempList.addAll(thdDataVOS);
- }
+ }else {
+ CommonStatisticalQueryParam commonStatisticalQueryParam = new CommonStatisticalQueryParam();
+ commonStatisticalQueryParam.setDevId(devId);
+ commonStatisticalQueryParam.setStatisticalId(temp.getId());
+ commonStatisticalQueryParam.setValueType("avg");
+ Future> listFuture= executorService.submit(new TaskWithResult(commonStatisticalQueryParam));
+ resultList.add(listFuture);
+ }
});
+ executorService.shutdown();
+
+ resultList.forEach(temp->{
+ try {
+ tempList.addAll(temp.get());
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ } catch (ExecutionException e) {
+ throw new RuntimeException(e);
+ }
+ });
//过滤M相
List m = tempList.stream().filter(temp -> Objects.equals(temp.getPhase(), "M")).collect(Collectors.toList());
m.stream().forEach(temp->{
@@ -198,4 +214,26 @@ public class MqttMessageHandler {
}
return "";
}
+
+ class TaskWithResult implements Callable> {
+ private CommonStatisticalQueryParam commonStatisticalQueryParam;
+
+ public TaskWithResult(CommonStatisticalQueryParam commonStatisticalQueryParam) {
+ this.commonStatisticalQueryParam = commonStatisticalQueryParam;
+ }
+
+ /**
+ * 任务的具体过程,一旦任务传给ExecutorService的submit方法,则该方法自动在一个线程上执行。
+ *
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public List call() throws Exception {
+ List thdDataVOList = new ArrayList<>();
+ thdDataVOList = stableDataService.queryFisrtCommonStatistical(commonStatisticalQueryParam);
+
+ return thdDataVOList;
+ }
+ }
}
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventPOMapper.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventPOMapper.java
new file mode 100644
index 0000000..1a8bced
--- /dev/null
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventPOMapper.java
@@ -0,0 +1,15 @@
+package com.njcn.csharmonic.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.njcn.csharmonic.pojo.po.CsEventPO;
+
+/**
+ *
+ * Description:
+ * Date: 2023/9/4 15:15【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+public interface CsEventPOMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java
new file mode 100644
index 0000000..cff6bcb
--- /dev/null
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java
@@ -0,0 +1,15 @@
+package com.njcn.csharmonic.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.njcn.csharmonic.pojo.po.CsEventUserPO;
+
+/**
+ *
+ * Description:
+ * Date: 2023/9/4 15:15【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+public interface CsEventUserPOMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventPOMapper.xml b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventPOMapper.xml
new file mode 100644
index 0000000..d7665a1
--- /dev/null
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventPOMapper.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, line_id, device_id, start_time, tag, wave_id
+
+
\ No newline at end of file
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml
new file mode 100644
index 0000000..427b236
--- /dev/null
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ device_id, user_id, event_id, `status`
+
+
\ No newline at end of file
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java
index c960fa0..d6e16b1 100644
--- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java
@@ -21,6 +21,7 @@ import com.njcn.system.api.EpdFeignClient;
import com.njcn.system.pojo.po.EleEpdPqd;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;