|
@@ -1,16 +1,37 @@
|
|
|
package org.thingsboard.server.service.nanxi.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import org.thingsboard.server.common.data.yunteng.dto.FileUploadResponse;
|
|
|
import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.thingsboard.server.domain.BaseOutput;
|
|
|
+import org.thingsboard.server.domain.NxAnnex;
|
|
|
import org.thingsboard.server.domain.RegisterWarnOriginal;
|
|
|
+import org.thingsboard.server.glossary.enums.YnEnums;
|
|
|
import org.thingsboard.server.mapper.RegisterWarnOriginalMapper;
|
|
|
+import org.thingsboard.server.rpc.YunTiRpc;
|
|
|
+import org.thingsboard.server.rpc.dto.RecordvideoAuthorization;
|
|
|
+import org.thingsboard.server.rpc.dto.Token;
|
|
|
+import org.thingsboard.server.rpc.enums.ErrorCode;
|
|
|
+import org.thingsboard.server.rpc.query.SecretProperties;
|
|
|
+import org.thingsboard.server.service.nanxi.INxAnnexService;
|
|
|
import org.thingsboard.server.service.nanxi.IRegisterWarnOriginalService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import org.thingsboard.server.utils.MinioUtils;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneOffset;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+import static org.thingsboard.server.glossary.constants.ThreadLocalConstant.YUN_TI_ACCESS_TOKEN;
|
|
|
import static org.thingsboard.server.utils.PageConvert.getPageData;
|
|
|
|
|
|
* @author Mu
|
|
@@ -19,24 +40,68 @@ import static org.thingsboard.server.utils.PageConvert.getPageData;
|
|
|
* @description
|
|
|
*/
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class RegisterWarnOriginalServiceImpl extends ServiceImpl<RegisterWarnOriginalMapper, RegisterWarnOriginal> implements IRegisterWarnOriginalService {
|
|
|
|
|
|
|
|
|
- @Autowired
|
|
|
- private RegisterWarnOriginalMapper registerWarnOriginalMapper;
|
|
|
+ @Autowired
|
|
|
+ private RegisterWarnOriginalMapper registerWarnOriginalMapper;
|
|
|
+ @Autowired
|
|
|
+ private YunTiRpc yunTiRpc;
|
|
|
+ @Autowired
|
|
|
+ private MinioUtils minioUtils;
|
|
|
+ @Autowired
|
|
|
+ private INxAnnexService nxAnnexService;
|
|
|
+ @Autowired
|
|
|
+ private SecretProperties secretProperties;
|
|
|
|
|
|
- @Override
|
|
|
- public TkPageData<RegisterWarnOriginal> page(RegisterWarnOriginal registerWarnOriginal) {
|
|
|
-
|
|
|
+ @Override
|
|
|
+ public TkPageData<RegisterWarnOriginal> page(RegisterWarnOriginal registerWarnOriginal) {
|
|
|
+
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
- return null;
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void queryYunTiWarnDataHasVideo() {
|
|
|
+ LambdaQueryWrapper<RegisterWarnOriginal> wrapper = new LambdaQueryWrapper<RegisterWarnOriginal>();
|
|
|
+ Calendar instance = Calendar.getInstance();
|
|
|
+ instance.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
+ wrapper.eq(RegisterWarnOriginal::getYn, YnEnums.NO.getCode())
|
|
|
+ .gt(RegisterWarnOriginal::getAlarmTime, instance.getTimeInMillis())
|
|
|
+ ;
|
|
|
+ List<RegisterWarnOriginal> registerWarnOriginals = registerWarnOriginalMapper.selectList(wrapper);
|
|
|
+ Map<String, Object> paramMap = null;
|
|
|
+ if(!CollectionUtils.isEmpty(registerWarnOriginals)){
|
|
|
+ BaseOutput<Token> token = yunTiRpc.getToken(secretProperties);
|
|
|
+ if(ErrorCode.SUCCESS.getCode().equals(token.getCode())) YUN_TI_ACCESS_TOKEN.set(token.getData().getAccessToken());
|
|
|
+ for (RegisterWarnOriginal registerWarnOriginal : registerWarnOriginals) {
|
|
|
+ paramMap = new HashMap<>();
|
|
|
+ paramMap.put("alarmCode", registerWarnOriginal.getAlarmCode());
|
|
|
+ BaseOutput<RecordvideoAuthorization> alarmvideoAuthorization = yunTiRpc.getAlarmvideoAuthorization(paramMap);
|
|
|
+ if(alarmvideoAuthorization.getData() != null){
|
|
|
+ try {
|
|
|
+ FileUploadResponse upload = minioUtils.saveInputStream(alarmvideoAuthorization.getData().getUrlSec(), registerWarnOriginal.getRegisterCode() + "_" + registerWarnOriginal.getAlarmCode());
|
|
|
+ NxAnnex annex = new NxAnnex();
|
|
|
+ BeanUtils.copyProperties(upload, annex);
|
|
|
+ annex.setContactId(registerWarnOriginal.getWarnId());
|
|
|
+ nxAnnexService.save(annex);
|
|
|
+ registerWarnOriginal.setYn(YnEnums.YES.getCode());
|
|
|
+ this.updateById(registerWarnOriginal);
|
|
|
+ }catch (RuntimeException e){
|
|
|
+ log.error("电梯报警存储视频失败:{}", e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|