Преглед на файлове

平台一键上下班 新增机构过滤条件

zhulu преди 1 година
родител
ревизия
593876dd83

+ 5 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/workRule/WorkRuleReq.java

@@ -21,4 +21,9 @@ public class WorkRuleReq extends PageRequest {
      * 规则类型
      */
     private Integer workRuleType;
+
+    /**
+     * 注册码,与平台机构一一对应
+     */
+    private String iotToken;
 }

+ 1 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/interfaces/WorkFieldStrategy.java

@@ -20,6 +20,6 @@ public interface WorkFieldStrategy {
      * 获取实时的上下班数据
      * @return
      */
-    List<WorkFieldDataVo> getRealWorkData(List<IotDayWorkOperation> operation, Integer workType);
+    List<WorkFieldDataVo> getRealWorkData(List<IotDayWorkOperation> operation, Integer workType,String iotToken);
 
 }

+ 2 - 2
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/interfaces/impl/DeployWorkStrategy.java

@@ -36,9 +36,9 @@ public class DeployWorkStrategy implements WorkFieldStrategy {
     private IotWorkRuleItemMapper workRuleItemMapper;
 
     @Override
-    public List<WorkFieldDataVo> getRealWorkData(List<IotDayWorkOperation> operation, Integer workType) {
+    public List<WorkFieldDataVo> getRealWorkData(List<IotDayWorkOperation> operation, Integer workType,String iotToken) {
         // 获取上下班规则
-        List<IotWorkRule> ruleList = workRuleService.getRuleList(new WorkRuleReq(workType, 1));
+        List<IotWorkRule> ruleList = workRuleService.getRuleList(new WorkRuleReq(workType, 1,iotToken));
         if (ObjectUtil.isEmpty(ruleList)) {
             return null;
         }

+ 2 - 2
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/interfaces/impl/ElectWorkStrategy.java

@@ -44,8 +44,8 @@ public class ElectWorkStrategy implements WorkFieldStrategy {
 
 
     @Override
-    public List<WorkFieldDataVo> getRealWorkData(List<IotDayWorkOperation> operation, Integer workType) {
-        List<IotWorkRule> ruleList = workRuleService.getRuleList(new WorkRuleReq(workType, 2));
+    public List<WorkFieldDataVo> getRealWorkData(List<IotDayWorkOperation> operation, Integer workType,String iotToken) {
+        List<IotWorkRule> ruleList = workRuleService.getRuleList(new WorkRuleReq(workType, 2,iotToken));
         if (ObjectUtil.isEmpty(ruleList)) {
             return null;
         }

+ 1 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotDayWorkOperationService.java

@@ -17,7 +17,7 @@ import java.util.List;
 public interface IotDayWorkOperationService extends IService<IotDayWorkOperation> {
 
 
-    List<IotDayWorkOperation> getIotDayWorkOperationList();
+    List<IotDayWorkOperation> getIotDayWorkOperationList(Long orgId);
 
     List<String> selectWorkDayList(Date startTime, Date endTime);
 }

+ 5 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDayWorkOperationServiceImpl.java

@@ -23,9 +23,13 @@ public class IotDayWorkOperationServiceImpl extends ServiceImpl<IotDayWorkOperat
 
 
     @Override
-    public List<IotDayWorkOperation> getIotDayWorkOperationList() {
+    public List<IotDayWorkOperation> getIotDayWorkOperationList(Long orgId) {
         LambdaQueryWrapper<IotDayWorkOperation> qw = new LambdaQueryWrapper<>();
         qw.eq(IotDayWorkOperation::getOperationStatus, 0);
+        if(orgId!=null)
+        {
+            qw.eq(IotDayWorkOperation::getOrgId, orgId);
+        }
         return baseMapper.selectList(qw);
     }
 

+ 19 - 4
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDayWorkServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
+import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
 import com.xunmei.common.core.domain.work.domain.IotDayWork;
 import com.xunmei.common.core.domain.work.domain.IotDayWorkOperation;
 import com.xunmei.common.core.domain.work.dto.ControlDeviceDto;
@@ -24,6 +25,7 @@ import com.xunmei.iot.interfaces.WorkFieldStrategy;
 import com.xunmei.iot.mapper.IotDayWorkMapper;
 import com.xunmei.iot.service.IotDayWorkOperationService;
 import com.xunmei.iot.service.IotDayWorkService;
+import com.xunmei.iot.service.IotServerInfoService;
 import com.xunmei.system.api.RemoteHostService;
 import com.xunmei.system.api.domain.SysUser;
 import org.apache.commons.lang3.StringUtils;
@@ -55,16 +57,20 @@ public class IotDayWorkServiceImpl extends ServiceImpl<IotDayWorkMapper, IotDayW
     @Resource
     RemoteHostService hostService;
 
+    @Resource
+    IotServerInfoService iotServerInfoService;
+
     @Override
     public WorkVo getRealWorkData(WorkDayDto workDayDto) {
-        List<IotDayWorkOperation> operationList = operationService.getIotDayWorkOperationList();
+        final SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
+        List<IotDayWorkOperation> operationList = operationService.getIotDayWorkOperationList(sysUser.getOrgId());
         /**
          * operationList 根据operationType 分组
          */
         Map<Integer, List<IotDayWorkOperation>> operMap = operationList.stream().collect(Collectors.groupingBy(IotDayWorkOperation::getOperationType));
 
         WorkVo workVo = new WorkVo();
-        final SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
+
         workVo.setOrgName(sysUser.getOrgName());
         DateTime dateTime = DateTime.now();
         String date = dateTime.toString("yyyy-MM-dd");
@@ -86,15 +92,24 @@ public class IotDayWorkServiceImpl extends ServiceImpl<IotDayWorkMapper, IotDayW
          * 1、如果没有操作数据,则直接返回实时状态。
          * 2、如果有操作数据,则需要根据操作数据,构建相应的数据。
          */
+        //获取用户机构下的IotToken 站不考虑一个机构多个Token的问题,目前先取第一个
+        List<IotServerInfo> iotServerInfos = iotServerInfoService.selectConnectOrg(false, sysUser.getOrgId(), null);
+
+        if(ObjectUtil.isEmpty(iotServerInfos))
+        {
+            // 说明该机构下没有注册主机
+            throw new RuntimeException("该机构尚未安装巡检主机,暂不支持此功能");
+        }
+        String iotToken=iotServerInfos.get(0).getIotCode();
         //处理布撤防数据
         WorkFieldStrategy workStrategy = workStrategyFactory.getWorkStrategy(GroupTypeEnum.DEFENSE_TYPE.getNum());
         List<WorkFieldDataVo> realWorkData = workStrategy.getRealWorkData(operMap.get(RedirectTypeEnum.DEFENSE_REDIRECT_TYPE.getNum())
-                , workDayDto.getDataType());
+                , workDayDto.getDataType(),iotToken);
         workVo.setDeploys(realWorkData);
 
         //处理用电数据
         workStrategy = workStrategyFactory.getWorkStrategy(GroupTypeEnum.ELECT_TYPE.getNum());
-        List<WorkFieldDataVo> eletcs = workStrategy.getRealWorkData(operMap.get(RedirectTypeEnum.ELECT_REDIRECT_TYPE.getNum()), workDayDto.getDataType());
+        List<WorkFieldDataVo> eletcs = workStrategy.getRealWorkData(operMap.get(RedirectTypeEnum.ELECT_REDIRECT_TYPE.getNum()), workDayDto.getDataType(),iotToken);
         workVo.setEletcs(eletcs);
         return workVo;
     }