Sfoglia il codice sorgente

加入 临时车费用同步物联网

java110 5 anni fa
parent
commit
0680863b11

+ 4 - 0
java110-bean/src/main/java/com/java110/dto/machine/MachineTranslateDto.java

@@ -44,6 +44,9 @@ public class MachineTranslateDto extends PageDto implements Serializable {
     public static final String CMD_DELETE_OWNER_CAR = "703";
     public static final String CMD_ADD_CAR_BLACK_WHITE = "801";
     public static final String CMD_DELETE_CAR_BLACK_WHITE = "803";
+    public static final String CMD_ADD_TEAM_CAR_FEE_CONFIG = "901";
+    public static final String CMD_UPDATE_TEAM_CAR_FEE_CONFIG = "902";
+    public static final String CMD_DELETE_TEAM_CAR_FEE_CONFIG = "903";
     public static final String CMD_OPEN_DOOR = "5";
 
     //小区信息
@@ -52,6 +55,7 @@ public class MachineTranslateDto extends PageDto implements Serializable {
     public static final String TYPE_OWNER = "8899";
     public static final String TYPE_PARKING_AREA = "2233";
     public static final String TYPE_OWNER_CAR = "4455";
+    public static final String TYPE_TEAM_CAR_FEE_CONFIG = "1122";
 
     //同步状态
     public static final String STATE_SUCCESS = "20000";

+ 7 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/IotConstant.java

@@ -77,6 +77,13 @@ public class IotConstant {
     //重启接口
     public static final String RESTART_MACHINE = "/extApi/machine/restartMachine";
 
+    //添加车辆
+    public static final String ADD_TEAM_CAR_FEE_CONFIG = "/extApi/fee/addTempCarFee";
+    //修改车辆
+    public static final String UPDATE_TEAM_CAR_FEE_CONFIG = "/extApi/fee/updateTempCarFee";
+    //删除车辆
+    public static final String DELETE_TEAM_CAR_FEE_CONFIG = "/extApi/fee/deleteTempCarFee";
+
     public static final String HC_TOKEN = "HC_ACCESS_TOKEN";
 
     //单位为秒

+ 16 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/asyn/IIotSendAsyn.java

@@ -114,4 +114,20 @@ public interface IIotSendAsyn {
     void addCarBlackWhite(JSONObject postParameters);
 
     void deleteCarBlackWhite(JSONObject postParameters);
+
+    /**
+     * 同步临时车费用
+     *
+     * @param postParameters
+     */
+    void addTempCarFeeConfig(JSONObject postParameters);
+
+    /**
+     * 同步临时车费用
+     *
+     * @param postParameters
+     */
+    void updateTempCarFeeConfig(JSONObject postParameters);
+
+    void deleteTempCarFeeConfig(JSONObject postParameters);
 }

+ 143 - 5
service-job/src/main/java/com/java110/job/adapt/hcIot/asyn/impl/IotSendAsynImpl.java

@@ -34,11 +34,7 @@ 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.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
@@ -892,6 +888,148 @@ public class IotSendAsynImpl implements IIotSendAsyn {
         }
     }
 
+
+    @Override
+    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<String> 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
+    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<String> 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
+    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<String> 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);
+        }
+    }
+
     private MachineTranslateDto getMachineTranslateDto(JSONObject postParameters, String cmd,
                                                        String machineCode,
                                                        String machineId,

+ 131 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/tempCarFee/AddTempCarFeeConfigToIotAdapt.java

@@ -0,0 +1,131 @@
+/*
+ * 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.tempCarFee;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigAttrDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
+import com.java110.entity.order.Business;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigAttrInnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.job.adapt.hcIot.asyn.IIotSendAsyn;
+import com.java110.po.tempCarFeeConfig.TempCarFeeConfigPo;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * HC iot 临时车标准同步适配器
+ * <p>
+ * 接口协议地址: https://gitee.com/java110/MicroCommunityThings/blob/master/back/docs/api.md
+ *
+ * @desc add by 吴学文 18:58
+ */
+@Component(value = "addTempCarFeeConfigToIotAdapt")
+public class AddTempCarFeeConfigToIotAdapt extends DatabusAdaptImpl {
+
+    @Autowired
+    private IIotSendAsyn hcTempCarFeeConfigAsynImpl;
+
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private ITempCarFeeConfigInnerServiceSMO tempCarFeeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private ITempCarFeeConfigAttrInnerServiceSMO tempCarFeeConfigAttrInnerServiceSMOImpl;
+
+
+    /**
+     * accessToken={access_token}
+     * &extCommunityUuid=01000
+     * &extCommunityId=1
+     * &devSn=111111111
+     * &name=设备名称
+     * &positionType=0
+     * &positionUuid=1
+     *
+     * @param business   当前处理业务
+     * @param businesses 所有业务信息
+     */
+    @Override
+
+    public void execute(Business business, List<Business> businesses) {
+        JSONObject data = business.getData();
+        if (data.containsKey(TempCarFeeConfigPo.class.getSimpleName())) {
+            Object bObj = data.get(TempCarFeeConfigPo.class.getSimpleName());
+            JSONArray businessTempCarFeeConfigs = null;
+            if (bObj instanceof JSONObject) {
+                businessTempCarFeeConfigs = new JSONArray();
+                businessTempCarFeeConfigs.add(bObj);
+            } else if (bObj instanceof List) {
+                businessTempCarFeeConfigs = JSONArray.parseArray(JSONObject.toJSONString(bObj));
+            } else {
+                businessTempCarFeeConfigs = (JSONArray) bObj;
+            }
+            //JSONObject businessTempCarFeeConfig = data.getJSONObject("businessTempCarFeeConfig");
+            for (int bTempCarFeeConfigIndex = 0; bTempCarFeeConfigIndex < businessTempCarFeeConfigs.size(); bTempCarFeeConfigIndex++) {
+                JSONObject businessTempCarFeeConfig = businessTempCarFeeConfigs.getJSONObject(bTempCarFeeConfigIndex);
+                doSendTempCarFeeConfig(business, businessTempCarFeeConfig);
+            }
+        }
+    }
+
+    private void doSendTempCarFeeConfig(Business business, JSONObject businessTempCarFeeConfig) {
+
+        TempCarFeeConfigPo tempCarFeeConfigPo = BeanConvertUtil.covertBean(businessTempCarFeeConfig, TempCarFeeConfigPo.class);
+
+        TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
+        tempCarFeeConfigDto.setConfigId(tempCarFeeConfigPo.getConfigId());
+        tempCarFeeConfigDto.setCommunityId(tempCarFeeConfigPo.getCommunityId());
+        List<TempCarFeeConfigDto> tempCarFeeConfigDtos = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigs(tempCarFeeConfigDto);
+
+        Assert.listOnlyOne(tempCarFeeConfigDtos, "未找到临时车收费标准");
+
+        List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = tempCarFeeConfigDtos.get(0).getTempCarFeeConfigAttrs();
+
+
+        JSONObject postParameters = new JSONObject();
+
+        postParameters.put("feeName", tempCarFeeConfigDtos.get(0).getFeeName());
+        postParameters.put("carType", tempCarFeeConfigDtos.get(0).getCarType());
+        postParameters.put("ruleId", tempCarFeeConfigDtos.get(0).getRuleId());
+        postParameters.put("startTime", tempCarFeeConfigDtos.get(0).getStartTime());
+        postParameters.put("endTime", tempCarFeeConfigDtos.get(0).getEndTime());
+        postParameters.put("extPaId", tempCarFeeConfigDtos.get(0).getPaId());
+        postParameters.put("extConfigId", tempCarFeeConfigDtos.get(0).getConfigId());
+        postParameters.put("extCommunityId", tempCarFeeConfigDtos.get(0).getCommunityId());
+        JSONArray attrs = new JSONArray();
+        if (tempCarFeeConfigAttrDtos != null) {
+            for (TempCarFeeConfigAttrDto tempCarFeeConfigAttrDto : tempCarFeeConfigAttrDtos) {
+                JSONObject attr = new JSONObject();
+                attr.put("specCd", tempCarFeeConfigAttrDto.getSpecCd());
+                attr.put("value", tempCarFeeConfigAttrDto.getValue());
+                attrs.add(attr);
+            }
+        }
+        postParameters.put("attrs", attrs);
+        hcTempCarFeeConfigAsynImpl.addTempCarFeeConfig(postParameters);
+    }
+}

+ 100 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/tempCarFee/DeleteTempCarFeeConfigToIotAdapt.java

@@ -0,0 +1,100 @@
+/*
+ * 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.tempCarFee;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
+import com.java110.entity.order.Business;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.job.adapt.hcIot.asyn.IIotSendAsyn;
+import com.java110.po.tempCarFeeConfig.TempCarFeeConfigPo;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * HC iot 删除名单同步iot
+ *
+ * <p>
+ * 接口协议地址: https://gitee.com/java110/MicroCommunityThings/blob/master/back/docs/api.md
+ *
+ * @desc add by 吴学文 18:58
+ */
+@Component(value = "deleteTempCarFeeConfigToIotAdapt")
+public class DeleteTempCarFeeConfigToIotAdapt extends DatabusAdaptImpl {
+
+    @Autowired
+    private IIotSendAsyn hcTempCarFeeConfigAsynImpl;
+
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private ITempCarFeeConfigInnerServiceSMO tempCarFeeConfigInnerServiceSMOImpl;
+
+    /**
+     * {
+     * "extTempCarFeeConfigId": "702020042194860037"
+     * }
+     *
+     * @param business   当前处理业务
+     * @param businesses 所有业务信息
+     */
+    @Override
+    public void execute(Business business, List<Business> businesses) {
+        JSONObject data = business.getData();
+        if (data.containsKey(TempCarFeeConfigPo.class.getSimpleName())) {
+            Object bObj = data.get(TempCarFeeConfigPo.class.getSimpleName());
+            JSONArray businessTempCarFeeConfigs = null;
+            if (bObj instanceof JSONObject) {
+                businessTempCarFeeConfigs = new JSONArray();
+                businessTempCarFeeConfigs.add(bObj);
+            } else if (bObj instanceof List) {
+                businessTempCarFeeConfigs = JSONArray.parseArray(JSONObject.toJSONString(bObj));
+            } else {
+                businessTempCarFeeConfigs = (JSONArray) bObj;
+            }
+            //JSONObject businessTempCarFeeConfig = data.getJSONObject("businessTempCarFeeConfig");
+            for (int bTempCarFeeConfigIndex = 0; bTempCarFeeConfigIndex < businessTempCarFeeConfigs.size(); bTempCarFeeConfigIndex++) {
+                JSONObject businessTempCarFeeConfig = businessTempCarFeeConfigs.getJSONObject(bTempCarFeeConfigIndex);
+                doSendTempCarFeeConfig(business, businessTempCarFeeConfig);
+            }
+        }
+    }
+
+    private void doSendTempCarFeeConfig(Business business, JSONObject businessTempCarFeeConfig) {
+        TempCarFeeConfigPo tempCarFeeConfigPo = BeanConvertUtil.covertBean(businessTempCarFeeConfig, TempCarFeeConfigPo.class);
+        TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
+        tempCarFeeConfigDto.setConfigId(tempCarFeeConfigPo.getConfigId());
+        tempCarFeeConfigDto.setStatusCd(StatusConstant.STATUS_CD_INVALID);
+        List<TempCarFeeConfigDto> tempCarFeeConfigDtos = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigs(tempCarFeeConfigDto);
+        Assert.listOnlyOne(tempCarFeeConfigDtos, "未找到临时车收费标准");
+
+        JSONObject postParameters = new JSONObject();
+        postParameters.put("extConfigId", tempCarFeeConfigDtos.get(0).getConfigId());
+        postParameters.put("extPaId", tempCarFeeConfigDtos.get(0).getPaId());
+        postParameters.put("extCommunityId", tempCarFeeConfigDtos.get(0).getCommunityId());
+        hcTempCarFeeConfigAsynImpl.deleteTempCarFeeConfig(postParameters);
+    }
+}

+ 136 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/tempCarFee/ModifyTempCarFeeConfigToIotAdapt.java

@@ -0,0 +1,136 @@
+/*
+ * 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.tempCarFee;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.parking.ParkingSpaceDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigAttrDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
+import com.java110.entity.order.Business;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigAttrInnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.job.adapt.hcIot.asyn.IIotSendAsyn;
+import com.java110.po.car.OwnerCarPo;
+import com.java110.po.tempCarFeeConfig.TempCarFeeConfigPo;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * HC iot 车辆同步适配器
+ * 接口协议地址: https://gitee.com/java110/MicroCommunityThings/blob/master/back/docs/api.md
+ *
+ * @desc add by 吴学文 18:58
+ */
+@Component(value = "modifyTempCarFeeConfigToIotAdapt")
+public class ModifyTempCarFeeConfigToIotAdapt extends DatabusAdaptImpl {
+
+    @Autowired
+    private IIotSendAsyn hcTempCarFeeConfigAsynImpl;
+
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private ITempCarFeeConfigInnerServiceSMO tempCarFeeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private ITempCarFeeConfigAttrInnerServiceSMO tempCarFeeConfigAttrInnerServiceSMOImpl;
+
+
+    /**
+     * accessToken={access_token}
+     * &extCommunityUuid=01000
+     * &extCommunityId=1
+     * &devSn=111111111
+     * &name=设备名称
+     * &positionType=0
+     * &positionUuid=1
+     *
+     * @param business   当前处理业务
+     * @param businesses 所有业务信息
+     */
+    @Override
+
+    public void execute(Business business, List<Business> businesses) {
+        JSONObject data = business.getData();
+        if (data.containsKey(TempCarFeeConfigPo.class.getSimpleName())) {
+            Object bObj = data.get(TempCarFeeConfigPo.class.getSimpleName());
+            JSONArray businessTempCarFeeConfigs = null;
+            if (bObj instanceof JSONObject) {
+                businessTempCarFeeConfigs = new JSONArray();
+                businessTempCarFeeConfigs.add(bObj);
+            } else if (bObj instanceof List) {
+                businessTempCarFeeConfigs = JSONArray.parseArray(JSONObject.toJSONString(bObj));
+            } else {
+                businessTempCarFeeConfigs = (JSONArray) bObj;
+            }
+            //JSONObject businessTempCarFeeConfig = data.getJSONObject("businessTempCarFeeConfig");
+            for (int bTempCarFeeConfigIndex = 0; bTempCarFeeConfigIndex < businessTempCarFeeConfigs.size(); bTempCarFeeConfigIndex++) {
+                JSONObject businessTempCarFeeConfig = businessTempCarFeeConfigs.getJSONObject(bTempCarFeeConfigIndex);
+                doSendTempCarFeeConfig(business, businessTempCarFeeConfig);
+            }
+        }
+    }
+
+    private void doSendTempCarFeeConfig(Business business, JSONObject businessTempCarFeeConfig) {
+
+        TempCarFeeConfigPo tempCarFeeConfigPo = BeanConvertUtil.covertBean(businessTempCarFeeConfig, TempCarFeeConfigPo.class);
+
+        TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
+        tempCarFeeConfigDto.setConfigId(tempCarFeeConfigPo.getConfigId());
+        tempCarFeeConfigDto.setCommunityId(tempCarFeeConfigPo.getCommunityId());
+        List<TempCarFeeConfigDto> tempCarFeeConfigDtos = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigs(tempCarFeeConfigDto);
+
+        Assert.listOnlyOne(tempCarFeeConfigDtos, "未找到临时车收费标准");
+
+        List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = tempCarFeeConfigDtos.get(0).getTempCarFeeConfigAttrs();
+
+
+        JSONObject postParameters = new JSONObject();
+
+        postParameters.put("feeName", tempCarFeeConfigDtos.get(0).getFeeName());
+        postParameters.put("carType", tempCarFeeConfigDtos.get(0).getCarType());
+        postParameters.put("ruleId", tempCarFeeConfigDtos.get(0).getRuleId());
+        postParameters.put("startTime", tempCarFeeConfigDtos.get(0).getStartTime());
+        postParameters.put("endTime", tempCarFeeConfigDtos.get(0).getEndTime());
+        postParameters.put("extPaId", tempCarFeeConfigDtos.get(0).getPaId());
+        postParameters.put("extConfigId", tempCarFeeConfigDtos.get(0).getConfigId());
+        postParameters.put("extCommunityId", tempCarFeeConfigDtos.get(0).getCommunityId());
+        JSONArray attrs = new JSONArray();
+        if (tempCarFeeConfigAttrDtos != null) {
+            for (TempCarFeeConfigAttrDto tempCarFeeConfigAttrDto : tempCarFeeConfigAttrDtos) {
+                JSONObject attr = new JSONObject();
+                attr.put("specCd", tempCarFeeConfigAttrDto.getSpecCd());
+                attr.put("value", tempCarFeeConfigAttrDto.getValue());
+                attrs.add(attr);
+            }
+        }
+        postParameters.put("attrs", attrs);
+        hcTempCarFeeConfigAsynImpl.updateTempCarFeeConfig(postParameters);
+    }
+}