mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 16:30:29 +08:00
fix: relocate cwos-portal decompiled output to correct path; remove nested directory
Former-commit-id: dc30d42a8c55ed8b2382a41dc2434233fbed9930
This commit is contained in:
+142
@@ -0,0 +1,142 @@
|
||||
package cn.cloudwalk.elevator.task;
|
||||
|
||||
import cn.cloudwalk.client.cwoscomponent.intelligent.record.param.AcsRecordThreeSendParam;
|
||||
import cn.cloudwalk.client.cwoscomponent.intelligent.record.result.AcsRecordThreeSendResult;
|
||||
import cn.cloudwalk.client.cwoscomponent.intelligent.record.service.AcsRecordThreeSendService;
|
||||
import cn.cloudwalk.cloud.result.CloudwalkResult;
|
||||
import cn.cloudwalk.elevator.record.dao.AcsElevatorRecordDao;
|
||||
import cn.cloudwalk.elevator.record.dao.SendRecordTimeDao;
|
||||
import cn.cloudwalk.elevator.record.dto.SendRecordTimeAddDTO;
|
||||
import cn.cloudwalk.elevator.record.dto.SendRecordTimeEditDTO;
|
||||
import cn.cloudwalk.elevator.record.dto.SendRecordTimeResultDTO;
|
||||
import cn.cloudwalk.elevator.record.param.SendRecordSendInfoParam;
|
||||
import cn.cloudwalk.elevator.record.param.SendRecordSendParam;
|
||||
import cn.cloudwalk.elevator.record.param.SendRecordTokenParam;
|
||||
import cn.cloudwalk.elevator.record.result.SendRecordTokenResult;
|
||||
import cn.cloudwalk.elevator.util.DateUtils;
|
||||
import cn.cloudwalk.elevator.util.RestTemplateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import java.net.URI;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.Resource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
@Component
|
||||
public class ElevatorRecordSendTask {
|
||||
private Logger logger = LoggerFactory.getLogger(ElevatorRecordSendTask.class);
|
||||
@Value("${sendRecord.ip}")
|
||||
private String sendRecordIp;
|
||||
@Value("${sendRecord.token.corpId}")
|
||||
private String corpId;
|
||||
@Value("${sendRecord.token.appKey}")
|
||||
private String appKey;
|
||||
@Value("${sendRecord.token.appSecret}")
|
||||
private String appSecret;
|
||||
@Value("${sendRecord.boolean}")
|
||||
private Boolean sendBoolean;
|
||||
private static final long EXPIRE_TIME = 82800000L;
|
||||
@Resource
|
||||
private AcsElevatorRecordDao acsElevatorRecordDao;
|
||||
@Resource
|
||||
private SendRecordTimeDao sendRecordTimeDao;
|
||||
@Autowired
|
||||
private AcsRecordThreeSendService acsRecordThreeSendService;
|
||||
|
||||
@Scheduled(cron = "${group-person.syn.config.check-handle.cron:0/10 * * * * ?}")
|
||||
public void execute() {
|
||||
if (!this.sendBoolean.booleanValue()) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
SendRecordTimeResultDTO timeDto2 = this.sendRecordTimeDao.getByType(Integer.valueOf(2));
|
||||
Long recognitionTime2 = Long.valueOf(System.currentTimeMillis());
|
||||
if (!ObjectUtils.isEmpty(timeDto2)) {
|
||||
if (recognitionTime2.longValue() - timeDto2.getTime().longValue() < 3600000L) {
|
||||
return;
|
||||
}
|
||||
recognitionTime2 = timeDto2.getTime();
|
||||
} else {
|
||||
SendRecordTimeAddDTO timeAddDTO = new SendRecordTimeAddDTO();
|
||||
timeAddDTO.setTime(recognitionTime2);
|
||||
timeAddDTO.setType(Integer.valueOf(2));
|
||||
this.sendRecordTimeDao.add(timeAddDTO);
|
||||
}
|
||||
SendRecordTimeEditDTO editDto2 = new SendRecordTimeEditDTO();
|
||||
editDto2.setType(Integer.valueOf(2));
|
||||
editDto2.setTime(Long.valueOf(recognitionTime2.longValue() + 10000L));
|
||||
AcsRecordThreeSendParam threeSendParam = new AcsRecordThreeSendParam();
|
||||
threeSendParam.setStartTime(recognitionTime2);
|
||||
CloudwalkResult<List<AcsRecordThreeSendResult>> result =
|
||||
this.acsRecordThreeSendService.listByTime(threeSendParam);
|
||||
this.logger.info("查询时间戳为:{},获取的门禁记录数据为:{}", recognitionTime2, JSON.toJSONString(result.getData()));
|
||||
if (!CollectionUtils.isEmpty((Collection)result.getData())) {
|
||||
editDto2
|
||||
.setTime(Long.valueOf(((AcsRecordThreeSendResult)((List<AcsRecordThreeSendResult>)result.getData())
|
||||
.get(((List)result.getData()).size() - 1)).getRecognitionTime()));
|
||||
if (editDto2.getTime().equals(recognitionTime2)) {
|
||||
editDto2.setTime(Long.valueOf(recognitionTime2.longValue() + 10L));
|
||||
}
|
||||
List<SendRecordSendInfoParam> records2 = new ArrayList<>();
|
||||
for (AcsRecordThreeSendResult sendResult2 : result.getData()) {
|
||||
if (!ObjectUtils.isEmpty(sendResult2.getPersonCode())) {
|
||||
SendRecordSendInfoParam param = new SendRecordSendInfoParam();
|
||||
param.setEmployeeCode(sendResult2.getPersonCode());
|
||||
param.setSignTime(
|
||||
DateUtils.parseDate(new Date(sendResult2.getRecognitionTime()), "yyyy-MM-dd HH:mm:ss"));
|
||||
param.setDeviceName(sendResult2.getDeviceName());
|
||||
records2.add(param);
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(records2)) {
|
||||
SendRecordTokenParam sendRecordTokenParam = new SendRecordTokenParam();
|
||||
sendRecordTokenParam.setCorpId(this.corpId);
|
||||
sendRecordTokenParam.setAppKey(this.appKey);
|
||||
sendRecordTokenParam.setAppSecret(this.appSecret);
|
||||
URI uri = combineAuthClientURI("forward_webfront/api/pti-oapi/token/get", null);
|
||||
CloudwalkResult<SendRecordTokenResult> tokenResult =
|
||||
(CloudwalkResult<SendRecordTokenResult>)RestTemplateUtil.post(uri, sendRecordTokenParam, null,
|
||||
new TypeReference<CloudwalkResult<SendRecordTokenResult>>() {});
|
||||
LinkedMultiValueMap linkedMultiValueMap = new LinkedMultiValueMap();
|
||||
linkedMultiValueMap.add("token", ((SendRecordTokenResult)tokenResult.getData()).getToken());
|
||||
URI uri2 =
|
||||
combineAuthClientURI("/forward_webfront/api/pti-oapi/v2/api/starriver/device/sign-third-import",
|
||||
(MultiValueMap<String, String>)linkedMultiValueMap);
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("token", ((SendRecordTokenResult)tokenResult.getData()).getToken());
|
||||
SendRecordSendParam sendParam2 = new SendRecordSendParam();
|
||||
sendParam2.setRecords(records2);
|
||||
this.logger.info("推送通行记录数据为:{}", JSON.toJSONString(records2));
|
||||
CloudwalkResult sendResult2 = (CloudwalkResult)RestTemplateUtil.post(uri2, sendParam2, headers,
|
||||
new TypeReference<CloudwalkResult>() {});
|
||||
this.logger.info("调用第三方接口发送通行记录数据结束,返回结果为:{}", JSON.toJSONString(sendResult2));
|
||||
}
|
||||
this.sendRecordTimeDao.update(editDto2);
|
||||
} else if (result.isSuccess()) {
|
||||
this.sendRecordTimeDao.update(editDto2);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
this.logger.error("派梯记录推送失败,失败原因是:{}", e);
|
||||
}
|
||||
}
|
||||
|
||||
private URI combineAuthClientURI(String api, @Nullable MultiValueMap<String, String> params) {
|
||||
return UriComponentsBuilder.fromUriString("http://" + this.sendRecordIp).path(api).queryParams(params).build()
|
||||
.toUri();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user