/* * 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.IotConstant; import com.java110.job.adapt.hcIot.asyn.IIotSendAsyn; import com.java110.po.machineTranslateError.MachineTranslateErrorPo; import com.java110.utils.cache.MappingCache; import com.java110.utils.kafka.KafkaFactory; import com.java110.utils.util.DateUtil; import com.java110.utils.util.StringUtil; import com.java110.vo.ResultVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; 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 IotSendKafkaImpl implements IIotSendAsyn { private static final Logger logger = LoggerFactory.getLogger(IotSendKafkaImpl.class); private static final String DEFAULT_MACHINE_CODE = "-"; private static final String DEFAULT_MACHINE_ID = "-"; public static final String DEFAULT_TOPIC = "java110-hc-xiaoqu"; public static final String IOT_TOPIC = "IOT_TOPIC"; @Autowired private RestTemplate outRestTemplate; @Autowired private IMachineInnerServiceSMO machineInnerServiceSMOImpl; @Autowired private IMachineAttrInnerServiceSMO machineAttrInnerServiceSMOImpl; @Autowired private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl; @Autowired private IMachineTranslateErrorInnerServiceSMO machineTranslateErrorInnerServiceSMOImpl; private String createReqParam(String url, JSONObject param) { JSONObject data = new JSONObject(); data.put("appId", IotConstant.getAppId()); data.put("action", url); data.put("data", param); data.put("sign", ""); return data.toJSONString(); } private void sendKafkaMessage(String url, JSONObject param) throws Exception { String data = createReqParam(url, param); // 根据小区 topic String topic = MappingCache.getValue(IOT_TOPIC, param.getString("extCommunityId")); topic = StringUtil.isEmpty(topic) ? DEFAULT_TOPIC : topic; KafkaFactory.sendKafkaMessage(topic, data); } @Override public void addCommunity(JSONObject postParameters) throws Exception { MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_COMMUNITY, DEFAULT_MACHINE_CODE, DEFAULT_MACHINE_ID, "extCommunityId", "name", MachineTranslateDto.TYPE_COMMUNITY); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.ADD_COMMUNITY_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { logger.error("修改小区异常", e); machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), "", IotConstant.ADD_COMMUNITY_URL); } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.UPDATE_COMMUNITY_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { logger.error("修改小区异常", e); machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.UPDATE_COMMUNITY_URL); } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.DELETE_COMMUNITY_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { logger.error("删除小区异常", e); machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.DELETE_COMMUNITY_URL); } finally { saveTranslateLog(machineTranslateDto); } } /** * 添加设备 * * @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.ADD_MACHINE_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.ADD_MACHINE_URL); return; } finally { saveTranslateLog(machineTranslateDto); } 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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.UPDATE_MACHINE_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.UPDATE_MACHINE_URL); } finally { saveTranslateLog(machineTranslateDto); } 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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.DELETE_MACHINE_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.DELETE_MACHINE_URL); } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.ADD_OWNER, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.ADD_OWNER); } finally { saveTranslateLog(machineTranslateDto); } } @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); try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.EDIT_OWNER, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), "", IotConstant.EDIT_OWNER); } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.DELETE_OWNER, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), "", IotConstant.DELETE_OWNER); } finally { saveTranslateLog(machineTranslateDto); } } /** * 重试 * * @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.ADD_PARKING_AREA_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), "", IotConstant.ADD_PARKING_AREA_URL); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.UPDATE_PARKING_AREA_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.UPDATE_PARKING_AREA_URL); return; } finally { saveTranslateLog(machineTranslateDto); } } @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()); sendKafkaMessage(IotConstant.DELETE_PARKING_AREA_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.DELETE_PARKING_AREA_URL); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.ADD_OWNER_CAR_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.ADD_OWNER_CAR_URL); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.UPDATE_OWNER_CAR_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.UPDATE_OWNER_CAR_URL); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.DELETE_OWNER_CAR_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.DELETE_OWNER_CAR_URL); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.ADD_CAR_BLACK_WHITE_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.ADD_CAR_BLACK_WHITE_URL); return; } finally { saveTranslateLog(machineTranslateDto); } } @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()); sendKafkaMessage(IotConstant.DELETE_CAR_BLACK_WHITE_URL, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.DELETE_CAR_BLACK_WHITE_URL); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.ADD_TEAM_CAR_FEE_CONFIG, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.ADD_TEAM_CAR_FEE_CONFIG); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.UPDATE_TEAM_CAR_FEE_CONFIG, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.UPDATE_TEAM_CAR_FEE_CONFIG); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.DELETE_TEAM_CAR_FEE_CONFIG, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.DELETE_TEAM_CAR_FEE_CONFIG); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.ADD_ATTENDANCE_CLASSES, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.ADD_ATTENDANCE_CLASSES); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { for (JSONObject staff : staffs) { staff.put("taskId", machineTranslateDto.getMachineTranslateId()); } sendKafkaMessage(IotConstant.ADD_ATTENDANCE_CLASSES_STAFFS, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.ADD_ATTENDANCE_CLASSES_STAFFS); return; } finally { saveTranslateLog(machineTranslateDto); } } @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()); sendKafkaMessage(IotConstant.DELETE_ATTENDANCE_CLASSES_STAFFS, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.DELETE_ATTENDANCE_CLASSES_STAFFS); return; } finally { saveTranslateLog(machineTranslateDto); } } @Override public void addParkingAreaText(JSONObject postParameters) { } @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()); sendKafkaMessage(IotConstant.UPDATE_ATTENDANCE_CLASSES, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.UPDATE_ATTENDANCE_CLASSES); return; } finally { saveTranslateLog(machineTranslateDto); } } @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; try { postParameters.put("taskId", machineTranslateDto.getMachineTranslateId()); sendKafkaMessage(IotConstant.DELETE_ATTENDANCE_CLASSES, postParameters); machineTranslateDto.setState(MachineTranslateDto.STATE_DOING); machineTranslateDto.setRemark("正在同步"); } catch (Exception e) { machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR); machineTranslateDto.setRemark(e.getLocalizedMessage()); //保存 失败报文 saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", IotConstant.DELETE_ATTENDANCE_CLASSES); return; } finally { saveTranslateLog(machineTranslateDto); } } 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); } }