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;