/* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.job.adapt.hcIot.asyn.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.core.client.RestTemplate; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.machine.MachineDto; import com.java110.dto.machine.MachineTranslateDto; import com.java110.dto.machineTranslateError.MachineTranslateErrorDto; import com.java110.intf.common.IMachineAttrInnerServiceSMO; import com.java110.intf.common.IMachineInnerServiceSMO; import com.java110.intf.common.IMachineTranslateErrorInnerServiceSMO; import com.java110.intf.common.IMachineTranslateInnerServiceSMO; import com.java110.job.adapt.hcIot.GetToken; import com.java110.job.adapt.hcIot.IotConstant; import com.java110.job.adapt.hcIot.asyn.IIotSendAsyn; import com.java110.po.machineTranslateError.MachineTranslateErrorPo; import com.java110.utils.util.DateUtil; import com.java110.vo.ResultVo; import org.slf4j.Logger; import com.java110.core.log.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.*; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.List; /** * IOT信息异步同步处理实现类 *

* 接口协议地址: https://gitee.com/java110/MicroCommunityThings/blob/master/back/docs/api.md * * @desc add by 吴学文 11:55 */ @Service public class IotSendAsynImpl implements IIotSendAsyn { private static final Logger logger = LoggerFactory.getLogger(IotSendAsynImpl.class); private static final String DEFAULT_MACHINE_CODE = "-"; private static final String DEFAULT_MACHINE_ID = "-"; @Autowired private RestTemplate outRestTemplate; @Autowired private IMachineInnerServiceSMO machineInnerServiceSMOImpl; @Autowired private IMachineAttrInnerServiceSMO machineAttrInnerServiceSMOImpl; @Autowired private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl; @Autowired private IMachineTranslateErrorInnerServiceSMO machineTranslateErrorInnerServiceSMOImpl; /** * 封装头信息 * * @return */ private HttpHeaders getHeaders() { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("access_token", GetToken.get(outRestTemplate, false)); //httpHeaders.add("Content-Type", "application/x-www-form-urlencoded"); return httpHeaders; } private void refreshAccessToken(ResponseEntity responseEntity) { if (responseEntity == null) { return; } if (responseEntity.getStatusCode() != HttpStatus.OK) { return; } JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody()); if (paramOut.getIntValue("code") == ResultVo.CODE_UNAUTHORIZED) { //删除token GetToken.get(outRestTemplate, true); } } @Override @Async public void addCommunity(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_COMMUNITY, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extCommunityId", "name", MachineTranslateDto.TYPE_COMMUNITY); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_COMMUNITY_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody()); if (paramOut.getInteger("code") != ResultVo.CODE_OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(paramOut.getString("msg")); } } catch (Exception e) { logger.error("保存小区异常", e); machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void editCommunity(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_UPDATE_COMMUNITY, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extCommunityId", "name", MachineTranslateDto.TYPE_COMMUNITY); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.UPDATE_COMMUNITY_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody()); if (paramOut.getInteger("code") != ResultVo.CODE_OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(paramOut.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } } catch (Exception e) { logger.error("修改小区异常", e); machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void deleteCommunity(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_COMMUNITY, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extCommunityId", "name", MachineTranslateDto.TYPE_COMMUNITY); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_COMMUNITY_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody()); if (paramOut.getInteger("code") != ResultVo.CODE_OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(paramOut.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } } catch (Exception e) { logger.error("删除小区异常", e); machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } /** * 添加设备 * * @param postParameters * @param ownerDtos */ @Override @Async public void addMachine(JSONObject postParameters, List ownerDtos) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_MACHINE, postParameters.getString("machineCode"), postParameters.getString("extMachineId"), "extMachineId", "machineName", MachineTranslateDto.TYPE_MACHINE); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_MACHINE_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(IotConstant.getUrl(IotConstant.ADD_MACHINE_URL), HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } MachineDto machinePo = new MachineDto(); machinePo.setMachineId(postParameters.getString("extMachineId")); machinePo.setCommunityId(postParameters.getString("extCommunityId")); machinePo.setState("1700"); machineInnerServiceSMOImpl.updateMachineState(machinePo); for (JSONObject owner : ownerDtos) { addOwner(owner); } } @Override @Async public void updateMachine(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_UPDATE_MACHINE, postParameters.getString("machineCode"), postParameters.getString("extMachineId"), "extMachineId", "machineName", MachineTranslateDto.TYPE_MACHINE); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.UPDATE_MACHINE_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } MachineDto machinePo = new MachineDto(); machinePo.setMachineId(postParameters.getString("extMachineId")); machinePo.setCommunityId(postParameters.getString("extCommunityId")); machinePo.setState("1700"); machineInnerServiceSMOImpl.updateMachineState(machinePo); } @Override @Async public void deleteMachine(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_MACHINE, postParameters.getString("machineCode"), postParameters.getString("extMachineId"), "extMachineId", "machineName", MachineTranslateDto.TYPE_MACHINE); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_MACHINE_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void addOwner(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_OWNER_FACE, postParameters.getString("machineCode"), postParameters.getString("extMachineId"), "userId", "name", MachineTranslateDto.TYPE_OWNER); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_OWNER); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); //保存 失败报文 } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void sendUpdateOwner(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_UPDATE_OWNER_FACE, postParameters.getString("machineCode"), postParameters.getString("extMachineId"), "userId", "name", MachineTranslateDto.TYPE_OWNER); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.EDIT_OWNER); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void sendDeleteOwner(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_OWNER_FACE, postParameters.getString("machineCode"), postParameters.getString("extMachineId"), "userId", "name", MachineTranslateDto.TYPE_OWNER); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_OWNER); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } /** * 重试 * * @param reqJson */ @Override @Async public void reSendIot(JSONObject reqJson) { MachineTranslateErrorDto machineTranslateErrorDto = new MachineTranslateErrorDto(); machineTranslateErrorDto.setCommunityId(reqJson.getString("communityId")); machineTranslateErrorDto.setMachineTranslateId(reqJson.getString("machineTranslateId")); List machineTranslateErrorDtos = machineTranslateErrorInnerServiceSMOImpl.queryMachineTranslateErrors(machineTranslateErrorDto); if (machineTranslateErrorDtos == null || machineTranslateErrorDtos.size() < 1) { return; } HttpEntity httpEntity = new HttpEntity(machineTranslateErrorDtos.get(0).getReqBody(), getHeaders()); ResponseEntity responseEntity = outRestTemplate.exchange(machineTranslateErrorDtos.get(0).getReqPath(), HttpMethod.POST, httpEntity, String.class); JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); MachineTranslateDto machineTranslateDto = new MachineTranslateDto(); machineTranslateDto.setMachineTranslateId(reqJson.getString("machineTranslateId")); machineTranslateDto.setCommunityId(reqJson.getString("communityId")); machineTranslateDto.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); } else { machineTranslateDto.setState(MachineTranslateDto.STATE_SUCCESS); machineTranslateDto.setRemark("同步物联网系统成功"); } machineTranslateInnerServiceSMOImpl.updateMachineTranslateState(machineTranslateDto); } @Override @Async public void addParkingArea(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_PARKING_AREA, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extPaId", "num", MachineTranslateDto.TYPE_PARKING_AREA); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_PARKING_AREA_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void updateParkingArea(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_UPDATE_PARKING_AREA, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extPaId", "num", MachineTranslateDto.TYPE_PARKING_AREA); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.UPDATE_PARKING_AREA_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void deleteParkingArea(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_PARKING_AREA, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extPaId", "num", MachineTranslateDto.TYPE_PARKING_AREA); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_PARKING_AREA_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void addOwnerCar(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_OWNER_CAR, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extCarId", "carNum", MachineTranslateDto.TYPE_OWNER_CAR); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_OWNER_CAR_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override public void addVisit(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_VISIT, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extCarId", "carNum", MachineTranslateDto.TYPE_OWNER_CAR); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_VISIT_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void updateOwnerCar(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_UPDATE_OWNER_CAR, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extCarId", "carNum", MachineTranslateDto.TYPE_OWNER_CAR); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.UPDATE_OWNER_CAR_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void deleteOwnerCar(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_OWNER_CAR, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extCarId", "carNum", MachineTranslateDto.TYPE_OWNER_CAR); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_OWNER_CAR_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void addCarBlackWhite(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_CAR_BLACK_WHITE, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extBwId", "carNum", MachineTranslateDto.TYPE_OWNER_CAR); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_CAR_BLACK_WHITE_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void deleteCarBlackWhite(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_CAR_BLACK_WHITE, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extBwId", "carNum", MachineTranslateDto.TYPE_OWNER_CAR); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_CAR_BLACK_WHITE_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void addTempCarFeeConfig(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_TEAM_CAR_FEE_CONFIG, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extConfigId", "feeName", MachineTranslateDto.TYPE_TEAM_CAR_FEE_CONFIG); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_TEAM_CAR_FEE_CONFIG); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void updateTempCarFeeConfig(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_UPDATE_TEAM_CAR_FEE_CONFIG, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extConfigId", "feeName", MachineTranslateDto.TYPE_TEAM_CAR_FEE_CONFIG); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.UPDATE_TEAM_CAR_FEE_CONFIG); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void deleteTempCarFeeConfig(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_TEAM_CAR_FEE_CONFIG, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extBwId", "carNum", MachineTranslateDto.TYPE_TEAM_CAR_FEE_CONFIG); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_TEAM_CAR_FEE_CONFIG); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void addAttendance(JSONObject postParameters, List staffs) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_ATTENDANCE_CLASSES, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extClassesId", "classesName", MachineTranslateDto.TYPE_ATTENDANCE); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_ATTENDANCE_CLASSES); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } if (staffs == null || staffs.size() < 1) { return; } url = IotConstant.getUrl(IotConstant.ADD_ATTENDANCE_CLASSES_STAFFS); for (JSONObject staff : staffs) { staff.put("taskId", machineTranslateDto.getMachineTranslateId()); } httpEntity = new HttpEntity(JSONArray.toJSONString(staffs), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void addAttendanceStaff(JSONObject postParameters, List staffs) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_ATTENDANCE_CLASSES, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extClassesId", "classesName", MachineTranslateDto.TYPE_ATTENDANCE); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_ATTENDANCE_CLASSES_STAFFS); try { for (JSONObject staff : staffs) { staff.put("taskId", machineTranslateDto.getMachineTranslateId()); } HttpEntity httpEntity = new HttpEntity(JSONArray.toJSONString(staffs), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void deleteAttendanceStaff(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_ATTENDANCE_CLASSES, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extClassesId", "classesName", MachineTranslateDto.TYPE_ATTENDANCE); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_ATTENDANCE_CLASSES_STAFFS); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override public void addParkingAreaText(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_PARKING_AREA_TEXT, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extPaId", "textId", MachineTranslateDto.TYPE_PARKING_AREA); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_PARKING_AREA_TEXT_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override public void addParkingBox(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_PARKING_AREA_TEXT, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extBoxId", "boxId", MachineTranslateDto.TYPE_PARKING_AREA); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.ADD_PARKING_BOX_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override public void deleteParkingBox(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_PARKING_AREA_TEXT, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extPaId", "textId", MachineTranslateDto.TYPE_PARKING_AREA); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_PARKING_BOX_URL); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void updateAttendance(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_UPDATE_ATTENDANCE_CLASSES, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extClassesId", "classesName", MachineTranslateDto.TYPE_ATTENDANCE); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.UPDATE_ATTENDANCE_CLASSES); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } @Override @Async public void deleteAttendance(JSONObject postParameters) { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_DELETE_ATTENDANCE_CLASSES, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extClassesId", "classesName", MachineTranslateDto.TYPE_ATTENDANCE); ResponseEntity responseEntity = null; String url = IotConstant.getUrl(IotConstant.DELETE_ATTENDANCE_CLASSES); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders()); responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); logger.debug("调用HC IOT信息:" + responseEntity); if (responseEntity.getStatusCode() != HttpStatus.OK) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(responseEntity.getBody()); saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody()); if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(tokenObj.getString("msg")); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url); return; } finally { saveTranslateLog(machineTranslateDto); refreshAccessToken(responseEntity); } } private MachineTranslateDto getMachineTranslateDto(JSONObject postParameters, String cmd, String machineCode, String machineId, String objId, String objName, String typeCd) { MachineTranslateDto machineTranslateDto = new MachineTranslateDto(); machineTranslateDto.setMachineTranslateId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineTranslateId)); machineTranslateDto.setCommunityId(postParameters.getString("extCommunityId")); machineTranslateDto.setMachineCmd(cmd); machineTranslateDto.setMachineCode(machineCode); machineTranslateDto.setMachineId(machineId); machineTranslateDto.setObjId(postParameters.getString(objId)); machineTranslateDto.setObjName(postParameters.getString(objName)); machineTranslateDto.setTypeCd(typeCd); machineTranslateDto.setState(MachineTranslateDto.STATE_SUCCESS); machineTranslateDto.setRemark("同步物联网系统成功"); return machineTranslateDto; } /** * 存储交互 记录 * * @param machineTranslateDto */ public void saveTranslateLog(MachineTranslateDto machineTranslateDto) { machineTranslateDto.setbId("-1"); machineTranslateDto.setObjBId("-1"); machineTranslateDto.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); machineTranslateInnerServiceSMOImpl.saveMachineTranslate(machineTranslateDto); } public void saveTranslateError(MachineTranslateDto machineTranslateDto, String reqJson, String resJson, String url) { machineTranslateDto.setMachineTranslateId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineTranslateId)); MachineTranslateErrorPo machineTranslateErrorPo = new MachineTranslateErrorPo(); machineTranslateErrorPo.setLogId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_logId)); machineTranslateErrorPo.setCommunityId(machineTranslateDto.getCommunityId()); machineTranslateErrorPo.setMachineTranslateId(machineTranslateDto.getMachineTranslateId()); machineTranslateErrorPo.setReqBody(reqJson); machineTranslateErrorPo.setReqHeader(""); machineTranslateErrorPo.setResBody(resJson); machineTranslateErrorPo.setReqPath(url); machineTranslateErrorPo.setReqType(MachineTranslateErrorDto.REQ_TYPE_URL); machineTranslateErrorInnerServiceSMOImpl.saveMachineTranslateError(machineTranslateErrorPo); } }