From a146097a15d719c60af3cdeb4de1f21aa7b5ca8d Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 20 九月 2024 10:47:53 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java                             |    4 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java                      |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TransactionRecordMessageListener.java      |   13 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java                        |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java                            |    1 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ErrorMessageMessage.java                      |   35 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/util/RocketMQEnhanceTemplate.java                   |    9 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java                                  |    5 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java                         |   11 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java                         |   11 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ParameterSettingMessage.java                  |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/CarNumDto.java                                                |   12 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java            |   10 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                                 |   12 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java                                          |    4 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java      |   10 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/EndChargeMessage.java                         |    4 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                                             |    3 
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java                                    |    1 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java                                 |    4 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java                                       |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/OnlineMessageListener.java                 |    7 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java                        |    9 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/UploadRealTimeMonitoringDataMessage.java      |    4 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ErrorMessageMessageListener.java           |   80 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java                |   10 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java                                            |    3 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/ErrorMessageMessageService.java            |    8 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PingMessageListener.java                   |    8 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BmsDemandAndChargerExportationMessage.java    |    3 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java                            |    6 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java |   16 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java      |    9 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/ErrorMessageMessageServiceImpl.java   |   35 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java                                    |   22 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java               |  134 ++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/CarUtil.java                                                  | 2384 ++++++++++++++++++++++++++++++++++++++++++++++++
 37 files changed, 2,817 insertions(+), 80 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
index ab00b84..5c3fc3f 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
@@ -1,5 +1,6 @@
 package com.ruoyi.account.api.factory;
 
+import com.ruoyi.account.api.dto.GiveVipDto;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.model.TAppUser;
@@ -74,6 +75,11 @@
             }
 
             @Override
+            public R giveVip(GiveVipDto giveVipDto) {
+                return null;
+            }
+
+            @Override
             public R<List<TAppUser>> getUserByIds(List<Long> appUserIds) {
                 return R.fail("根据用户id查询用户信息失败:"+throwable.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
index f52c5d9..3cc881d 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
@@ -1,5 +1,6 @@
 package com.ruoyi.account.api.feignClient;
 
+import com.ruoyi.account.api.dto.GiveVipDto;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.account.api.model.TAppUserAddress;
@@ -81,4 +82,7 @@
      */
     @PostMapping(value = "/t-app-user/refundPoints/{param}")
     public R refundPoints(@PathVariable("param")String param);
+
+    @PostMapping(value = "/t-app-user/user/give/vip")
+    public R giveVip(@RequestBody GiveVipDto giveVipDto);
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java
index e11a395..3639029 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java
@@ -126,6 +126,9 @@
     @ApiModelProperty(value = "vip名称")
     @TableField(exist = false)
     private String vipName;
+    @ApiModelProperty(value = "归属地")
+    @TableField(exist = false)
+    private String place;
     @ApiModelProperty("累计充电数")
     @TableField(exist = false)
     private Long orderCount;
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java
index 94a055e..e12602d 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -26,14 +27,14 @@
 	 * @param siteId
 	 * @return
 	 */
-	@PostMapping("/t-accounting-strategy-detail/getDetailBySiteId")
+	@GetMapping("/t-accounting-strategy-detail/getDetailBySiteId")
 	R<TAccountingStrategyDetail> getDetailBySiteId(@RequestParam("siteId") Integer siteId);
 	/**
 	 * 通过桩编号查询当前时段使用的策略明细
 	 * @param code
 	 * @return
 	 */
-	@PostMapping("/t-accounting-strategy-detail/getDetailByCode")
+	@GetMapping("/t-accounting-strategy-detail/getDetailByCode")
 	R<TAccountingStrategyDetail> getDetailByCode(@RequestParam("code") String code);
 	/**
 	 * 校验充电桩计费模版是否准确
@@ -49,13 +50,13 @@
 	 * @param id
 	 * @return
 	 */
-	@PostMapping("/t-accounting-strategy-detail/getListByAccountingStrategyId")
+	@GetMapping("/t-accounting-strategy-detail/getListByAccountingStrategyId")
 	R<List<TAccountingStrategyDetail>> getListByAccountingStrategyId(@RequestParam("id") Integer id);
 	/**
 	 * 通过桩编号查询当前使用的策略明细列表
 	 * @param code
 	 * @return
 	 */
-	@PostMapping("/t-accounting-strategy-detail/getDetailListByCode")
+	@GetMapping("/t-accounting-strategy-detail/getDetailListByCode")
 	R<List<TAccountingStrategyDetail>> getDetailListByCode(@RequestParam("code") String code);
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
index 61b14b5..7f2650b 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -69,6 +69,11 @@
                 return R.fail("支付回调:" + cause.getMessage());
             }
 
+            @Override
+            public R vipCallBack(String code, String outTradeNo) {
+                return R.fail("会员订单回调失败:" + cause.getMessage());
+            }
+
 
             @Override
             public R<TActivityVO> activityStatistics(TActivityStatisticsQuery dto) {
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
index c49e25f..ee7f887 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -45,6 +45,8 @@
     public R<TShoppingOrder> shopCreate(@RequestBody ExchangeDto exchangeDto);
     @PostMapping("/t-shopping-order/callBack")
     public R callBack(@RequestParam("code")String code,@RequestParam("outTradeNo")String outTradeNo);
+    @PostMapping("/t-vip-order/callBack")
+    public R vipCallBack(@RequestParam("code")String code,@RequestParam("outTradeNo")String outTradeNo);
 
     /**
      * 管理后台 活动费用统计
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
index a548f5d..382ce1d 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
@@ -186,7 +186,9 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField("refund_time")
     private LocalDateTime refundTime;
-
+    @ApiModelProperty(value = "总电量")
+    @TableField("total_electricity")
+    private BigDecimal totalElectricity;// 总电量
 
     @ApiModelProperty(value = "支付时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index af6db93..cce7853 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -11,11 +11,9 @@
 import com.ruoyi.account.api.dto.*;
 import com.ruoyi.account.api.model.*;
 import com.ruoyi.account.service.*;
-import com.ruoyi.account.util.PointDetailUtil;
-import com.ruoyi.account.util.SignDayUtil;
+import com.ruoyi.account.util.*;
 import com.ruoyi.account.util.carBrand.CarBrandUtil;
 import com.ruoyi.account.wx.model.WeixinProperties;
-import com.ruoyi.account.util.GiveVipUtil;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.dto.PointChangeDto;
@@ -251,6 +249,14 @@
             appUser.setOrderCount(useOrderCount.getData());
             appUser.setUid(appUser.getId().toString());
 
+            TAppUserCar one1 = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, appUser.getId()).orderByDesc(BasePojo::getCreateTime).last("limit 1").one();
+            if (one1!=null){
+                CarNumDto carNumDto = CarUtil.carNum(one1.getLicensePlate());
+                appUser.setPlace(carNumDto.getProvince()+carNumDto.getCity());
+
+            }
+
+
         }
         return R.ok(page);
     }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/CarNumDto.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/CarNumDto.java
new file mode 100644
index 0000000..ed30b43
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/CarNumDto.java
@@ -0,0 +1,12 @@
+package com.ruoyi.account.util;
+
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+public class CarNumDto implements Serializable {
+    private String pcode;
+    private String province;
+    private String city;
+    private String code;
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/CarUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/CarUtil.java
new file mode 100644
index 0000000..f7025ca
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/CarUtil.java
@@ -0,0 +1,2384 @@
+package com.ruoyi.account.util;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.List;
+
+public class CarUtil {
+
+    public static CarNumDto carNum(String num) {
+        String jsonStr = "{\"date\":[\n" +
+                "{\n" +
+                "\"code\":\"冀A\",\n" +
+                "\"city\":\"石家庄\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀B\",\n" +
+                "\"city\":\"唐山\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀C\",\n" +
+                "\"city\":\"秦皇岛\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀D\",\n" +
+                "\"city\":\"邯郸\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀E\",\n" +
+                "\"city\":\"邢台\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀F\",\n" +
+                "\"city\":\"保定\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀G\",\n" +
+                "\"city\":\"张家口\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀H\",\n" +
+                "\"city\":\"承德\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀J\",\n" +
+                "\"city\":\"沧州\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀R\",\n" +
+                "\"city\":\"廊坊\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀S\",\n" +
+                "\"city\":\"沧州\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"冀T\",\n" +
+                "\"city\":\"衡水\",\n" +
+                "\"province\":\"河北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽A\",\n" +
+                "\"city\":\"沈阳\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽B\",\n" +
+                "\"city\":\"大连\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽C\",\n" +
+                "\"city\":\"鞍山\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽D\",\n" +
+                "\"city\":\"抚顺\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽E\",\n" +
+                "\"city\":\"本溪\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽F\",\n" +
+                "\"city\":\"丹东\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽G\",\n" +
+                "\"city\":\"锦州\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽H\",\n" +
+                "\"city\":\"营口\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽J\",\n" +
+                "\"city\":\"阜新\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽K\",\n" +
+                "\"city\":\"辽阳\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽L\",\n" +
+                "\"city\":\"盘锦\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽M\",\n" +
+                "\"city\":\"铁岭\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽N\",\n" +
+                "\"city\":\"朝阳\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"辽p\",\n" +
+                "\"city\":\"葫芦岛\",\n" +
+                "\"province\":\"辽宁\",\n" +
+                "\"pcode\":\"LN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖A\",\n" +
+                "\"city\":\"合肥\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖B\",\n" +
+                "\"city\":\"芜湖\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖C\",\n" +
+                "\"city\":\"蚌埠\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖D\",\n" +
+                "\"city\":\"淮南\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖E\",\n" +
+                "\"city\":\"马鞍山\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖F\",\n" +
+                "\"city\":\"淮北\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖G\",\n" +
+                "\"city\":\"铜陵\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖H\",\n" +
+                "\"city\":\"安庆\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖J\",\n" +
+                "\"city\":\"黄山\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖K\",\n" +
+                "\"city\":\"阜阳\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖L\",\n" +
+                "\"city\":\"宿州\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖M\",\n" +
+                "\"city\":\"滁州\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖N\",\n" +
+                "\"city\":\"六安\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖p\",\n" +
+                "\"city\":\"宣城\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖Q\",\n" +
+                "\"city\":\"巢湖\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖R\",\n" +
+                "\"city\":\"池州\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"皖S\",\n" +
+                "\"city\":\"亳州\",\n" +
+                "\"province\":\"安徽\",\n" +
+                "\"pcode\":\"AH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏A\",\n" +
+                "\"city\":\"南京\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏B\",\n" +
+                "\"city\":\"无锡\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏C\",\n" +
+                "\"city\":\"徐州\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏D\",\n" +
+                "\"city\":\"常州\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏E\",\n" +
+                "\"city\":\"苏州\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏F\",\n" +
+                "\"city\":\"南通\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏G\",\n" +
+                "\"city\":\"连云港\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏H\",\n" +
+                "\"city\":\"淮安\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏J\",\n" +
+                "\"city\":\"盐城\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏K\",\n" +
+                "\"city\":\"扬州\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏L\",\n" +
+                "\"city\":\"镇江\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏M\",\n" +
+                "\"city\":\"泰州\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"苏N\",\n" +
+                "\"city\":\"宿迁\",\n" +
+                "\"province\":\"江苏\",\n" +
+                "\"pcode\":\"JS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂A\",\n" +
+                "\"city\":\"武汉\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂B\",\n" +
+                "\"city\":\"黄石\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂C\",\n" +
+                "\"city\":\"十堰\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂D\",\n" +
+                "\"city\":\"荆州\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂E\",\n" +
+                "\"city\":\"宜昌\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂F\",\n" +
+                "\"city\":\"襄樊\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂G\",\n" +
+                "\"city\":\"鄂州\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂H\",\n" +
+                "\"city\":\"荆门 \",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂J\",\n" +
+                "\"city\":\"黄冈\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂K\",\n" +
+                "\"city\":\"孝感\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂L\",\n" +
+                "\"city\":\"咸宁\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂M\",\n" +
+                "\"city\":\"仙桃\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂N\",\n" +
+                "\"city\":\"潜江\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂p\",\n" +
+                "\"city\":\"神农架林区\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂Q\",\n" +
+                "\"city\":\"恩施土家族苗族自治州\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂R\",\n" +
+                "\"city\":\"天门\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鄂S\",\n" +
+                "\"city\":\"随州\",\n" +
+                "\"province\":\"湖北\",\n" +
+                "\"pcode\":\"HB\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋A\",\n" +
+                "\"city\":\"太原\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋B\",\n" +
+                "\"city\":\"大同\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋C\",\n" +
+                "\"city\":\"阳泉\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋D\",\n" +
+                "\"city\":\"长治\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋E\",\n" +
+                "\"city\":\"晋城\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋F\",\n" +
+                "\"city\":\"朔州\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋H\",\n" +
+                "\"city\":\"忻州\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋J\",\n" +
+                "\"city\":\"吕梁地区\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋K\",\n" +
+                "\"city\":\"晋中\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋L\",\n" +
+                "\"city\":\"临汾\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"晋M\",\n" +
+                "\"city\":\"运城\",\n" +
+                "\"province\":\"山西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉A\",\n" +
+                "\"city\":\"长春\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉B\",\n" +
+                "\"city\":\"吉林\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉C\",\n" +
+                "\"city\":\"四平\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉D\",\n" +
+                "\"city\":\"辽源\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉E\",\n" +
+                "\"city\":\"通化\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉F\",\n" +
+                "\"city\":\"白山\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉G\",\n" +
+                "\"city\":\"白城\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉H\",\n" +
+                "\"city\":\"延边朝鲜族自治州\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉J\",\n" +
+                "\"city\":\"松原\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"吉K\",\n" +
+                "\"city\":\"长白山\",\n" +
+                "\"province\":\"吉林\",\n" +
+                "\"pcode\":\"JL\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤A\",\n" +
+                "\"city\":\"广州\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤B\",\n" +
+                "\"city\":\"深圳\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤C\",\n" +
+                "\"city\":\"珠海\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤D\",\n" +
+                "\"city\":\"汕头\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤E\",\n" +
+                "\"city\":\"佛山\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤F\",\n" +
+                "\"city\":\"韶关\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤G\",\n" +
+                "\"city\":\"湛江\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤H\",\n" +
+                "\"city\":\"肇庆\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤J\",\n" +
+                "\"city\":\"江门\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤K\",\n" +
+                "\"city\":\"茂名\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤L\",\n" +
+                "\"city\":\"惠州\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤M\",\n" +
+                "\"city\":\"梅州\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤N\",\n" +
+                "\"city\":\"汕尾\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤p\",\n" +
+                "\"city\":\"河源\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤Q\",\n" +
+                "\"city\":\"阳江\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤R\",\n" +
+                "\"city\":\"清远\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤S\",\n" +
+                "\"city\":\"东莞\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤T\",\n" +
+                "\"city\":\"中山\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤U\",\n" +
+                "\"city\":\"潮州\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤V\",\n" +
+                "\"city\":\"揭阳\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤W\",\n" +
+                "\"city\":\"云浮\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤X\",\n" +
+                "\"city\":\"顺德区\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤Y\",\n" +
+                "\"city\":\"南海区\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"粤Z\",\n" +
+                "\"city\":\"港澳进入内地车辆\",\n" +
+                "\"province\":\"广东\",\n" +
+                "\"pcode\":\"GD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"宁A\",\n" +
+                "\"city\":\"银川\",\n" +
+                "\"province\":\"宁夏\",\n" +
+                "\"pcode\":\"NX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"宁B\",\n" +
+                "\"city\":\"石嘴山\",\n" +
+                "\"province\":\"宁夏\",\n" +
+                "\"pcode\":\"NX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"宁C\",\n" +
+                "\"city\":\"银南\",\n" +
+                "\"province\":\"宁夏\",\n" +
+                "\"pcode\":\"NX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"宁D\",\n" +
+                "\"city\":\"固原\",\n" +
+                "\"province\":\"宁夏\",\n" +
+                "\"pcode\":\"NX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"宁E\",\n" +
+                "\"city\":\"中卫\",\n" +
+                "\"province\":\"宁夏\",\n" +
+                "\"pcode\":\"NX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京A\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京B\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京C\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京D\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京E\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京F\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京G\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京H\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京J\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京K\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京L\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京M\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"京Y\",\n" +
+                "\"city\":\"北京\",\n" +
+                "\"province\":\"北京\",\n" +
+                "\"pcode\":\"BJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫A\",\n" +
+                "\"city\":\"郑州\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫B\",\n" +
+                "\"city\":\"开封\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫C\",\n" +
+                "\"city\":\"洛阳\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫D\",\n" +
+                "\"city\":\"平顶山\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫E\",\n" +
+                "\"city\":\"安阳\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫F\",\n" +
+                "\"city\":\"鹤壁\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫G\",\n" +
+                "\"city\":\"新乡\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫H\",\n" +
+                "\"city\":\"焦作\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫J\",\n" +
+                "\"city\":\"濮阳\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫K\",\n" +
+                "\"city\":\"许昌\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫L\",\n" +
+                "\"city\":\"漯河\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫M\",\n" +
+                "\"city\":\"三门峡\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫N\",\n" +
+                "\"city\":\"商丘\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫p\",\n" +
+                "\"city\":\"周口\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫Q\",\n" +
+                "\"city\":\"驻马店\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫R\",\n" +
+                "\"city\":\"南阳\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫S\",\n" +
+                "\"city\":\"信阳\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"豫U\",\n" +
+                "\"city\":\"济源\",\n" +
+                "\"province\":\"河南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑A\",\n" +
+                "\"city\":\"哈尔滨\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑B\",\n" +
+                "\"city\":\"齐齐哈尔\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑C\",\n" +
+                "\"city\":\"牡丹江\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑D\",\n" +
+                "\"city\":\"佳木斯\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑E\",\n" +
+                "\"city\":\"大庆\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑F\",\n" +
+                "\"city\":\"伊春\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑G\",\n" +
+                "\"city\":\"鸡西\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑H\",\n" +
+                "\"city\":\"鹤岗\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑J\",\n" +
+                "\"city\":\"双鸭山\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑K\",\n" +
+                "\"city\":\"七台河\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑L\",\n" +
+                "\"city\":\"松花江地区\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑M\",\n" +
+                "\"city\":\"绥化\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑N\",\n" +
+                "\"city\":\"黑河\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑p\",\n" +
+                "\"city\":\"大兴安岭地区\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"黑R\",\n" +
+                "\"city\":\"农垦系统\",\n" +
+                "\"province\":\"黑龙江\",\n" +
+                "\"pcode\":\"HLJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁A \",\n" +
+                "\"city\":\"济南\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁B\",\n" +
+                "\"city\":\"青岛\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁C\",\n" +
+                "\"city\":\"淄博\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁D\",\n" +
+                "\"city\":\"枣庄\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁E\",\n" +
+                "\"city\":\"东营\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁F\",\n" +
+                "\"city\":\"烟台\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁G\",\n" +
+                "\"city\":\"潍坊\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁H\",\n" +
+                "\"city\":\"济宁\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁J\",\n" +
+                "\"city\":\"泰安\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁K\",\n" +
+                "\"city\":\"威海\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁L\",\n" +
+                "\"city\":\"日照\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁M\",\n" +
+                "\"city\":\"滨州\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁N\",\n" +
+                "\"city\":\"德州\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁p\",\n" +
+                "\"city\":\"聊城\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁Q\",\n" +
+                "\"city\":\"临沂\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁R\",\n" +
+                "\"city\":\"菏泽\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁S\",\n" +
+                "\"city\":\"莱芜\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁U\",\n" +
+                "\"city\":\"青岛增补\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁V\",\n" +
+                "\"city\":\"潍坊增补\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"鲁Y\",\n" +
+                "\"city\":\"烟台\",\n" +
+                "\"province\":\"山东\",\n" +
+                "\"pcode\":\"SD\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙A\",\n" +
+                "\"city\":\"杭州\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙B\",\n" +
+                "\"city\":\"宁波\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙C\",\n" +
+                "\"city\":\"温州\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙D\",\n" +
+                "\"city\":\"绍兴\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙E\",\n" +
+                "\"city\":\"湖州\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙F\",\n" +
+                "\"city\":\"嘉兴\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙G\",\n" +
+                "\"city\":\"金华\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙H\",\n" +
+                "\"city\":\"衢州\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙J\",\n" +
+                "\"city\":\"台州\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙K\",\n" +
+                "\"city\":\"丽水\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"浙L\",\n" +
+                "\"city\":\"舟山\",\n" +
+                "\"province\":\"浙江\",\n" +
+                "\"pcode\":\"ZJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂A\",\n" +
+                "\"city\":\"南宁\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂B\",\n" +
+                "\"city\":\"柳州\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂C\",\n" +
+                "\"city\":\"桂林\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂D\",\n" +
+                "\"city\":\"梧州\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂E\",\n" +
+                "\"city\":\"北海\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂F\",\n" +
+                "\"city\":\"崇左\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂G\",\n" +
+                "\"city\":\"来宾\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂H\",\n" +
+                "\"city\":\"桂林地区\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂J\",\n" +
+                "\"city\":\"贺州\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂K\",\n" +
+                "\"city\":\"玉林\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂L\",\n" +
+                "\"city\":\"百色\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂M\",\n" +
+                "\"city\":\"河池\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂N\",\n" +
+                "\"city\":\"钦州\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂p\",\n" +
+                "\"city\":\"防城港\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"桂R\",\n" +
+                "\"city\":\"贵港\",\n" +
+                "\"province\":\"广西\",\n" +
+                "\"pcode\":\"GX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙A\",\n" +
+                "\"city\":\"呼和浩特\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙B\",\n" +
+                "\"city\":\"包头\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙C\",\n" +
+                "\"city\":\"乌海\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙D\",\n" +
+                "\"city\":\"赤峰\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙E\",\n" +
+                "\"city\":\"呼伦贝尔 \",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙F\",\n" +
+                "\"city\":\"兴安盟\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙G\",\n" +
+                "\"city\":\"通辽\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙H\",\n" +
+                "\"city\":\"锡林郭勒盟\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙J\",\n" +
+                "\"city\":\"乌兰察布盟\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙K\",\n" +
+                "\"city\":\"鄂尔多斯 \",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙L\",\n" +
+                "\"city\":\"巴彦淖尔盟\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"蒙M \",\n" +
+                "\"city\":\" 阿拉善盟\",\n" +
+                "\"province\":\"内蒙古\",\n" +
+                "\"pcode\":\"NMG\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽A\",\n" +
+                "\"city\":\"福州\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽B\",\n" +
+                "\"city\":\"莆田\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽C\",\n" +
+                "\"city\":\"泉州\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽D\",\n" +
+                "\"city\":\"厦门\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽E\",\n" +
+                "\"city\":\"漳州\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽F\",\n" +
+                "\"city\":\"龙岩\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽G\",\n" +
+                "\"city\":\"三明\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽H\",\n" +
+                "\"city\":\"南平\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽J\",\n" +
+                "\"city\":\"宁德\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"闽K\",\n" +
+                "\"city\":\"直系统\",\n" +
+                "\"province\":\"福建\",\n" +
+                "\"pcode\":\"FJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川A\",\n" +
+                "\"city\":\"成都\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川B\",\n" +
+                "\"city\":\"绵阳\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川C\",\n" +
+                "\"city\":\"自贡\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川D\",\n" +
+                "\"city\":\"攀枝花\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川E\",\n" +
+                "\"city\":\"泸州\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川F\",\n" +
+                "\"city\":\"德阳\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川H\",\n" +
+                "\"city\":\"广元\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川J\",\n" +
+                "\"city\":\"遂宁\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川K\",\n" +
+                "\"city\":\"内江\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川L\",\n" +
+                "\"city\":\"乐山\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川M\",\n" +
+                "\"city\":\"资阳\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川Q\",\n" +
+                "\"city\":\"宜宾\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川R\",\n" +
+                "\"city\":\"南充\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川S\",\n" +
+                "\"city\":\"达州\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川T\",\n" +
+                "\"city\":\"雅安\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川U\",\n" +
+                "\"city\":\"阿坝藏族羌族自治州\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川V\",\n" +
+                "\"city\":\"甘孜藏族自治州\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川W\",\n" +
+                "\"city\":\"凉山彝族自治州\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川X\",\n" +
+                "\"city\":\"广安\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川Y\",\n" +
+                "\"city\":\"巴中\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"川Z\",\n" +
+                "\"city\":\"眉山\",\n" +
+                "\"province\":\"四川\",\n" +
+                "\"pcode\":\"SC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"渝A\",\n" +
+                "\"city\":\"重庆区(江南)\",\n" +
+                "\"province\":\"重庆\",\n" +
+                "\"pcode\":\"ZQ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"渝B\",\n" +
+                "\"city\":\"重庆区(江北)\",\n" +
+                "\"province\":\"重庆\",\n" +
+                "\"pcode\":\"ZQ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"渝C\",\n" +
+                "\"city\":\"永川区\",\n" +
+                "\"province\":\"重庆\",\n" +
+                "\"pcode\":\"ZQ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"渝F\",\n" +
+                "\"city\":\"万州区\",\n" +
+                "\"province\":\"重庆\",\n" +
+                "\"pcode\":\"ZQ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"渝G\",\n" +
+                "\"city\":\"涪陵区\",\n" +
+                "\"province\":\"重庆\",\n" +
+                "\"pcode\":\"ZQ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"渝H\",\n" +
+                "\"city\":\"黔江区\",\n" +
+                "\"province\":\"重庆\",\n" +
+                "\"pcode\":\"ZQ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"津A\",\n" +
+                "\"city\":\"天津\",\n" +
+                "\"province\":\"天津\",\n" +
+                "\"pcode\":\"TJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"津B\",\n" +
+                "\"city\":\"天津\",\n" +
+                "\"province\":\"天津\",\n" +
+                "\"pcode\":\"TJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"津C\",\n" +
+                "\"city\":\"天津\",\n" +
+                "\"province\":\"天津\",\n" +
+                "\"pcode\":\"TJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"津D\",\n" +
+                "\"city\":\"天津\",\n" +
+                "\"province\":\"天津\",\n" +
+                "\"pcode\":\"TJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"津E\",\n" +
+                "\"city\":\"天津\",\n" +
+                "\"province\":\"天津\",\n" +
+                "\"pcode\":\"TJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"津F\",\n" +
+                "\"city\":\"天津\",\n" +
+                "\"province\":\"天津\",\n" +
+                "\"pcode\":\"TJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"津G\",\n" +
+                "\"city\":\"天津\",\n" +
+                "\"province\":\"天津\",\n" +
+                "\"pcode\":\"TJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"津H\",\n" +
+                "\"city\":\"天津\",\n" +
+                "\"province\":\"天津\",\n" +
+                "\"pcode\":\"TJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云A\",\n" +
+                "\"city\":\"昆明\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云A-V\",\n" +
+                "\"city\":\"东川\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云C\",\n" +
+                "\"city\":\"昭通\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云D\",\n" +
+                "\"city\":\"曲靖\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云E\",\n" +
+                "\"city\":\"楚雄彝族自治州\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云F\",\n" +
+                "\"city\":\"玉溪\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云G\",\n" +
+                "\"city\":\"红河哈尼族彝族自治州\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云H\",\n" +
+                "\"city\":\"文山壮族苗族自治州\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云J\",\n" +
+                "\"city\":\"思茅\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云K\",\n" +
+                "\"city\":\"西双版纳傣族自治州\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云L\",\n" +
+                "\"city\":\"大理白族自治州\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云M\",\n" +
+                "\"city\":\"保山\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云N\",\n" +
+                "\"city\":\"德宏傣族景颇族自治州\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云p\",\n" +
+                "\"city\":\"丽江\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云Q\",\n" +
+                "\"city\":\"怒江傈僳族自治州\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云R\",\n" +
+                "\"city\":\"迪庆藏族自治州\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"云S\",\n" +
+                "\"city\":\"临沧地区\",\n" +
+                "\"province\":\"云南\",\n" +
+                "\"pcode\":\"YN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘A \",\n" +
+                "\"city\":\"长沙\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘B\",\n" +
+                "\"city\":\"株洲\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘C\",\n" +
+                "\"city\":\"湘潭\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘D\",\n" +
+                "\"city\":\"衡阳\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘E\",\n" +
+                "\"city\":\"邵阳\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘F\",\n" +
+                "\"city\":\"岳阳\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘G\",\n" +
+                "\"city\":\"张家界\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘H\",\n" +
+                "\"city\":\"益阳\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘J\",\n" +
+                "\"city\":\"常德\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘K\",\n" +
+                "\"city\":\"娄底\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘L\",\n" +
+                "\"city\":\"郴州\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘M\",\n" +
+                "\"city\":\"永州\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘N\",\n" +
+                "\"city\":\"怀化\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"湘U\",\n" +
+                "\"city\":\"湘西土家族苗族自治州\",\n" +
+                "\"province\":\"湖南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新A\",\n" +
+                "\"city\":\"乌鲁木齐\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新B\",\n" +
+                "\"city\":\"昌吉回族自治州\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新C\",\n" +
+                "\"city\":\"石河子\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新D\",\n" +
+                "\"city\":\"奎屯\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新E\",\n" +
+                "\"city\":\"博尔塔拉蒙古自治州\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新F\",\n" +
+                "\"city\":\"伊犁哈萨克自治州直辖县\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新G\",\n" +
+                "\"city\":\"塔城\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新H\",\n" +
+                "\"city\":\"阿勒泰\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新J\",\n" +
+                "\"city\":\"克拉玛依\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新K\",\n" +
+                "\"city\":\"吐鲁番\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新L\",\n" +
+                "\"city\":\"哈密\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新M\",\n" +
+                "\"city\":\"巴音郭愣蒙古自治州\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新N\",\n" +
+                "\"city\":\"阿克苏\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新p\",\n" +
+                "\"city\":\"克孜勒苏柯尔克孜自治州\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新Q\",\n" +
+                "\"city\":\"喀什\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"新R\",\n" +
+                "\"city\":\"和田\",\n" +
+                "\"province\":\"新疆\",\n" +
+                "\"pcode\":\"XJ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣A\",\n" +
+                "\"city\":\"南昌\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣B\",\n" +
+                "\"city\":\"赣州\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣C\",\n" +
+                "\"city\":\"宜春\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣D\",\n" +
+                "\"city\":\"吉安\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣E\",\n" +
+                "\"city\":\"上饶\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣F\",\n" +
+                "\"city\":\"抚州\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣G\",\n" +
+                "\"city\":\"九江\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣H\",\n" +
+                "\"city\":\"景德镇\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣J\",\n" +
+                "\"city\":\"萍乡\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣K\",\n" +
+                "\"city\":\"新余\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣L\",\n" +
+                "\"city\":\"鹰潭\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"赣M\",\n" +
+                "\"city\":\"南昌,直系统\",\n" +
+                "\"province\":\"江西\",\n" +
+                "\"pcode\":\"JX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘A\",\n" +
+                "\"city\":\"兰州\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘B\",\n" +
+                "\"city\":\"嘉峪关\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘C\",\n" +
+                "\"city\":\"金昌\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘D\",\n" +
+                "\"city\":\"白银\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘E\",\n" +
+                "\"city\":\"天水\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘F\",\n" +
+                "\"city\":\"酒泉\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘G\",\n" +
+                "\"city\":\"张掖\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘H\",\n" +
+                "\"city\":\"武威\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘J\",\n" +
+                "\"city\":\"定西\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘K\",\n" +
+                "\"city\":\"陇南\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘L\",\n" +
+                "\"city\":\"平凉\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘M\",\n" +
+                "\"city\":\"庆阳\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘N\",\n" +
+                "\"city\":\"临夏回族自治州\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"甘p\",\n" +
+                "\"city\":\"甘南藏族自治州\",\n" +
+                "\"province\":\"甘肃\",\n" +
+                "\"pcode\":\"GS\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕A\",\n" +
+                "\"city\":\"西安\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕B\",\n" +
+                "\"city\":\"铜川\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕C\",\n" +
+                "\"city\":\"宝鸡\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕D\",\n" +
+                "\"city\":\"咸阳\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕E\",\n" +
+                "\"city\":\"渭南\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕F\",\n" +
+                "\"city\":\"汉中\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕G\",\n" +
+                "\"city\":\"安康\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕H\",\n" +
+                "\"city\":\"商洛\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕J\",\n" +
+                "\"city\":\"延安\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕K\",\n" +
+                "\"city\":\"榆林\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"陕V\",\n" +
+                "\"city\":\"杨凌高新农业示范区\",\n" +
+                "\"province\":\"陕西\",\n" +
+                "\"pcode\":\"SX\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵A\",\n" +
+                "\"city\":\"贵阳\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵B\",\n" +
+                "\"city\":\"六盘水\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵C\",\n" +
+                "\"city\":\"遵义\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵D\",\n" +
+                "\"city\":\"铜仁\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵E\",\n" +
+                "\"city\":\"黔西南布依族苗族自治州\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵F\",\n" +
+                "\"city\":\"毕节\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵G\",\n" +
+                "\"city\":\"安顺\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵H\",\n" +
+                "\"city\":\"黔东南苗族侗族自治州\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"贵J\",\n" +
+                "\"city\":\"黔南布依族苗族自治州\",\n" +
+                "\"province\":\"贵州\",\n" +
+                "\"pcode\":\"GZ\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"青A\",\n" +
+                "\"city\":\"西宁\",\n" +
+                "\"province\":\"青海\",\n" +
+                "\"pcode\":\"QH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"青B\",\n" +
+                "\"city\":\"海东\",\n" +
+                "\"province\":\"青海\",\n" +
+                "\"pcode\":\"QH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"青C\",\n" +
+                "\"city\":\"海北藏族自治州\",\n" +
+                "\"province\":\"青海\",\n" +
+                "\"pcode\":\"QH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"青D\",\n" +
+                "\"city\":\"黄南藏族自治州\",\n" +
+                "\"province\":\"青海\",\n" +
+                "\"pcode\":\"QH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"青E\",\n" +
+                "\"city\":\"藏族自治州\",\n" +
+                "\"province\":\"青海\",\n" +
+                "\"pcode\":\"QH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"青F\",\n" +
+                "\"city\":\"果洛藏族自治州\",\n" +
+                "\"province\":\"青海\",\n" +
+                "\"pcode\":\"QH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"青G\",\n" +
+                "\"city\":\"玉树藏族自治州\",\n" +
+                "\"province\":\"青海\",\n" +
+                "\"pcode\":\"QH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"青H\",\n" +
+                "\"city\":\"海西蒙古族藏族自治州\",\n" +
+                "\"province\":\"青海\",\n" +
+                "\"pcode\":\"QH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏A\",\n" +
+                "\"city\":\"拉萨\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏B\",\n" +
+                "\"city\":\"昌都地区\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏C\",\n" +
+                "\"city\":\"山南地区\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏D\",\n" +
+                "\"city\":\"日喀则地区\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏E\",\n" +
+                "\"city\":\"那曲地区\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏F\",\n" +
+                "\"city\":\"阿里地区\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏G\",\n" +
+                "\"city\":\"林芝地区\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏H\",\n" +
+                "\"city\":\"天全县车辆管理所\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"藏J\",\n" +
+                "\"city\":\"格尔木车辆管理所\",\n" +
+                "\"province\":\"西藏\",\n" +
+                "\"pcode\":\"XC\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"琼A\",\n" +
+                "\"city\":\"海口\",\n" +
+                "\"province\":\"海南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"琼B\",\n" +
+                "\"city\":\"三亚\",\n" +
+                "\"province\":\"海南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"琼C\",\n" +
+                "\"city\":\"琼海\",\n" +
+                "\"province\":\"海南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"琼D\",\n" +
+                "\"city\":\"五指山\",\n" +
+                "\"province\":\"海南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"琼E\",\n" +
+                "\"city\":\"洋浦开发区\",\n" +
+                "\"province\":\"海南\",\n" +
+                "\"pcode\":\"HN\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"沪A\",\n" +
+                "\"city\":\"上海\",\n" +
+                "\"province\":\"上海\",\n" +
+                "\"pcode\":\"SH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"沪B\",\n" +
+                "\"city\":\"上海\",\n" +
+                "\"province\":\"上海\",\n" +
+                "\"pcode\":\"SH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"沪C\",\n" +
+                "\"city\":\"上海\",\n" +
+                "\"province\":\"上海\",\n" +
+                "\"pcode\":\"SH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"沪D\",\n" +
+                "\"city\":\"上海\",\n" +
+                "\"province\":\"上海\",\n" +
+                "\"pcode\":\"SH\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"code\":\"沪R\",\n" +
+                "\"city\":\"崇明、长兴、横沙\",\n" +
+                "\"province\":\"上海\",\n" +
+                "\"pcode\":\"SH\"\n" +
+                "}\n" +
+                "]}";
+        String hp = num.substring(0, 2);//
+        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
+        JSONArray data = jsonObject.getJSONArray("data");
+        List<CarNumDto> carNumDtos = JSONObject.parseArray(data.toJSONString(), CarNumDto.class);
+        CarNumDto carNumDto = new CarNumDto();
+        for (CarNumDto carNumDtoTemp : carNumDtos) {
+            if (StringUtils.equals(carNumDto.getCode(), hp)) {
+                carNumDto.setCity(carNumDtoTemp.getCity());
+                carNumDto.setCode(carNumDtoTemp.getCode());
+                carNumDto.setProvince(carNumDtoTemp.getProvince());
+                break;
+            }
+        }
+        return carNumDto;
+
+    }
+
+
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
index 3c21884..48c30cf 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -329,9 +329,17 @@
                 byId.setTwoAuditTime(LocalDateTime.now());
 
                 //如果parentId不为空,则将parentId对应的siteId改为现在的,并且将parenId对应的数据删除
+                if (byId.getParentId()!=null) {
+                    TAccountingStrategy one = accountingStrategyService.lambdaQuery().eq(TAccountingStrategy::getId, byId.getParentId()).one();
+                    byId.setSiteId(one.getSiteId());
+                    //将site表对应的模板id修改为新的这个
+                    Site byId1 = siteService.getById(one.getSiteId());
+                    byId1.setAccountingStrategyId(byId.getId());
+                    siteService.updateById(byId1);
+                }
 
+                //硬件
 
-                //将site表对应的模板id修改为新的这个
 
             }
         }else {
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
index 35c031e..b87e9de 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
@@ -91,7 +91,7 @@
      * @param siteId
      * @return
      */
-    @PostMapping("/getDetailBySiteId")
+    @GetMapping("/getDetailBySiteId")
     public R<TAccountingStrategyDetail> getDetailBySiteId(@RequestParam("siteId") Integer siteId){
         Site site = siteService.getById(siteId);
         TAccountingStrategy accountingStrategy = accountingStrategyService.getById(site.getAccountingStrategyId());
@@ -105,8 +105,8 @@
      * @param code 设备编号
      * @return
      */
-    @PostMapping("/getDetailByCode")
-    public R<TAccountingStrategyDetail> getDetailByPileId(@RequestParam("code") String code){
+    @GetMapping("/getDetailByCode")
+    public R<TAccountingStrategyDetail> getDetailByCode(@RequestParam("code") String code){
         // 查询桩
         TChargingPile chargingPile = chargingPileService.getOne(Wrappers.lambdaQuery(TChargingPile.class)
                 .eq(TChargingPile::getCode,code)
@@ -149,7 +149,7 @@
      * @param id
      * @return
      */
-    @PostMapping("/getListByAccountingStrategyId")
+    @GetMapping("/getListByAccountingStrategyId")
     public R<List<TAccountingStrategyDetail>> getListByAccountingStrategyId(@RequestParam("id") Integer id){
         List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(new LambdaQueryWrapper<TAccountingStrategyDetail>().eq(TAccountingStrategyDetail::getAccountingStrategyId, id));
         return R.ok(list);
@@ -160,7 +160,7 @@
      * @param code
      * @return
      */
-    @PostMapping("/t-accounting-strategy-detail/getDetailListByCode")
+    @GetMapping("/getDetailListByCode")
     public R<List<TAccountingStrategyDetail>> getDetailListByCode(@RequestParam("code") String code){
         // 查询桩
         TChargingPile chargingPile = chargingPileService.getOne(Wrappers.lambdaQuery(TChargingPile.class)
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java
index 3c83fca..3062d45 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java
@@ -19,6 +19,10 @@
 	 */
 	public static final String END_CHARGE = "end_charge";
 	/**
+	 * 错误报文
+	 */
+	public static final String ERROR_MESSAGE = "error_message";
+	/**
 	 * 计费模型验证请求
 	 */
 	public static final String BILLING_MODE_VERIFY ="billing_mode_verify";
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java
index 9a27b45..53b62e4 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java
@@ -172,6 +172,16 @@
     }
 
     /**
+     * 对时设置
+     * @param timingSetting 实体对象
+     * @return
+     */
+    @PostMapping("/timingSetting")
+    public String timingSetting(@RequestBody TimingSetting timingSetting){
+        return  iotMessageProduce.sendMessage(timingSetting.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING.getKey(),messageUtil.timingSetting(timingSetting));
+    }
+
+    /**
      * 对时设置应答
      * @param timingSettingReply 实体对象
      * @return
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java
index 12ea9d4..5146187 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java
@@ -67,6 +67,10 @@
 	 */
 	 WORKING_PARAMETER_SETTING ("充电桩工作参数设置","working_parameter_setting"),
 	/**
+	 * 对时设置
+	 */
+	TIMING_SETTING ("对时设置","timing_setting"),
+	/**
 	 * 对时设置应答
 	 */
 	 TIMING_SETTING_REPLY ("对时设置应答","timing_setting_reply"),
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java
index 491377c..77aeab2 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java
@@ -114,7 +114,7 @@
      * 创建设备
      * @param productId 产品ID
      * @param nodeId 设备标识码  通常使用IMEI、MAC地址或Serial No作为node_id
-     * @param deviceId 设备ID 使用CodeGenerateUtils.generateVolumeSn()
+     * @param deviceId 设备ID 使用设备标识码
      * @param deviceName 设备名称
      * @param description 设备描述
      * @return AddDeviceResponse
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
index 7125512..c29b1a2 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -5,6 +5,7 @@
 import com.ruoyi.chargingPile.api.dto.CheckChargingStrategyDTO;
 import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.integration.api.model.*;
 import com.ruoyi.integration.iotda.constant.SendTagConstant;
@@ -17,15 +18,18 @@
 import com.ruoyi.integration.rocket.produce.EnhanceProduce;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.rocketmq.client.producer.SendResult;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * iotda消息监听
@@ -63,7 +67,7 @@
         String result;
         switch (service_id){
             case SendTagConstant.ONLINE:
-                OnlineMessage onlineMessage = JSON.parseObject(jsonObject.toJSONString(),OnlineMessage.class);
+                OnlineMessage onlineMessage = JSON.parseObject(content.toJSONString(),OnlineMessage.class);
                 sendResult = enhanceProduce.onlineMessage(onlineMessage);
                 // 响应硬件
                 // 业务处理 登录认证应答
@@ -74,7 +78,7 @@
                 log.info("充电桩登录认证-返回结果:{}",result);
                 break;
             case SendTagConstant.PING:
-                PingMessage pingMessage = JSON.parseObject(jsonObject.toJSONString(),PingMessage.class);
+                PingMessage pingMessage = JSON.parseObject(content.toJSONString(),PingMessage.class);
                 sendResult = enhanceProduce.pingMessage(pingMessage);
                 // 响应硬件
                 Pong pong = new Pong();
@@ -85,12 +89,17 @@
                 log.info("充电桩心跳包-返回结果:{}",result);
                 break;
             case SendTagConstant.END_CHARGE:
-                EndChargeMessage endChargeMessage = JSON.parseObject(jsonObject.toJSONString(),EndChargeMessage.class);
+                EndChargeMessage endChargeMessage = JSON.parseObject(content.toJSONString(),EndChargeMessage.class);
                 sendResult = enhanceProduce.endChargeMessage(endChargeMessage);
                 // 响应硬件
                 break;
+            case SendTagConstant.ERROR_MESSAGE:
+                ErrorMessageMessage errorMessageMessage = JSON.parseObject(content.toJSONString(),ErrorMessageMessage.class);
+                sendResult = enhanceProduce.errorMessageMessage(errorMessageMessage);
+                // 响应硬件
+                break;
             case SendTagConstant.BILLING_MODE_VERIFY:
-                BillingModeVerifyMessage billingModeVerifyMessage = JSON.parseObject(jsonObject.toJSONString(),BillingModeVerifyMessage.class);
+                BillingModeVerifyMessage billingModeVerifyMessage = JSON.parseObject(content.toJSONString(),BillingModeVerifyMessage.class);
                 sendResult = enhanceProduce.billingModeVerifyMessage(billingModeVerifyMessage);
                 // 响应硬件
                 BillingModeVerifyReply billingModeVerifyReply = new BillingModeVerifyReply();
@@ -102,7 +111,7 @@
                 }else {
                     // 查询桩使用的模版
                     CheckChargingStrategyDTO dto = new CheckChargingStrategyDTO();
-                    dto.setCode(billingModeVerifyMessage.getBilling_model_code());
+                    dto.setCode(billingModeVerifyMessage.getCharging_pile_code());
                     dto.setStrategyDetailId(Integer.valueOf(billingModeVerifyMessage.getBilling_model_code()));
                     Boolean check = accountingStrategyDetailClient.checkChargingStrategy(dto).getData();
                     // 校验计费模版是否准确
@@ -117,7 +126,7 @@
                 iotMessageProduce.sendMessage(deviceId, ServiceIdMenu.BILLING_MODE_VERIFY_REPLY.getKey(),messageUtil.billingModeVerifyReply(billingModeVerifyReply));
                 break;
             case SendTagConstant.ACQUISITION_BILLING_MODE:
-                AcquisitionBillingModeMessage acquisitionBillingModeMessage = JSON.parseObject(jsonObject.toJSONString(),AcquisitionBillingModeMessage.class);
+                AcquisitionBillingModeMessage acquisitionBillingModeMessage = JSON.parseObject(content.toJSONString(),AcquisitionBillingModeMessage.class);
                 sendResult = enhanceProduce.acquisitionBillingModeMessage(acquisitionBillingModeMessage);
                 // 响应硬件   计费模型请求应答  1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段
                 List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode(acquisitionBillingModeMessage.getCharging_pile_code()).getData();
@@ -127,58 +136,70 @@
                 StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply);
                 // 时段设置
                 StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply);
+                TAccountingStrategyDetail accountingStrategyDetail = accountingStrategyDetailClient.getDetailByCode(acquisitionBillingModeMessage.getCharging_pile_code()).getData();
+                acquisitionBillingModeReply.setBilling_model_code(accountingStrategyDetail.getId().toString());
+                acquisitionBillingModeReply.setCharging_pile_code(acquisitionBillingModeMessage.getCharging_pile_code());
+                acquisitionBillingModeReply.setLoss_ratio(BigDecimal.ZERO);
                 iotMessageProduce.sendMessage(deviceId, ServiceIdMenu.ACQUISITION_BILLING_MODE_REPLY.getKey(),messageUtil.acquisitionBillingModeReply(acquisitionBillingModeReply));
                 break;
             case SendTagConstant.UPLOAD_REAL_TIME_MONITORING_DATA:
-                UploadRealTimeMonitoringDataMessage uploadRealTimeMonitoringDataMessage = JSON.parseObject(jsonObject.toJSONString(),UploadRealTimeMonitoringDataMessage.class);
+                UploadRealTimeMonitoringDataMessage uploadRealTimeMonitoringDataMessage = JSON.parseObject(content.toJSONString(),UploadRealTimeMonitoringDataMessage.class);
                 sendResult = enhanceProduce.uploadRealTimeMonitoringDataMessage(uploadRealTimeMonitoringDataMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.CHARGING_HANDSHAKE:
-                ChargingHandshakeMessage chargingHandshakeMessage = JSON.parseObject(jsonObject.toJSONString(),ChargingHandshakeMessage.class);
+                ChargingHandshakeMessage chargingHandshakeMessage = JSON.parseObject(content.toJSONString(),ChargingHandshakeMessage.class);
                 sendResult = enhanceProduce.chargingHandshakeMessage(chargingHandshakeMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.PARAMETER_SETTING:
-                ParameterSettingMessage parameterSettingMessage = JSON.parseObject(jsonObject.toJSONString(),ParameterSettingMessage.class);
+                ParameterSettingMessage parameterSettingMessage = JSON.parseObject(content.toJSONString(),ParameterSettingMessage.class);
                 sendResult = enhanceProduce.parameterSettingMessage(parameterSettingMessage);
                 break;
             case SendTagConstant.BMS_ABORT:
-                BmsAbortMessage bmsAbortMessage = JSON.parseObject(jsonObject.toJSONString(),BmsAbortMessage.class);
+                BmsAbortMessage bmsAbortMessage = JSON.parseObject(content.toJSONString(),BmsAbortMessage.class);
                 sendResult = enhanceProduce.bmsAbortMessage(bmsAbortMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.MOTOR_ABORT:
-                MotorAbortMessage motorAbortMessage = JSON.parseObject(jsonObject.toJSONString(),MotorAbortMessage.class);
+                MotorAbortMessage motorAbortMessage = JSON.parseObject(content.toJSONString(),MotorAbortMessage.class);
                 sendResult = enhanceProduce.motorAbortMessage(motorAbortMessage);
                 break;
             case SendTagConstant.BMS_DEMAND_AND_CHARGER_EXPORTATION:
-                BmsDemandAndChargerExportationMessage bmsDemandAndChargerExportationMessage = JSON.parseObject(jsonObject.toJSONString(),BmsDemandAndChargerExportationMessage.class);
+                BmsDemandAndChargerExportationMessage bmsDemandAndChargerExportationMessage = JSON.parseObject(content.toJSONString(),BmsDemandAndChargerExportationMessage.class);
                 sendResult = enhanceProduce.bmsDemandAndChargerExportationMessage(bmsDemandAndChargerExportationMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.BMS_INFORMATION:
-                BmsInformationMessage bmsInformationMessage = JSON.parseObject(jsonObject.toJSONString(),BmsInformationMessage.class);
+                BmsInformationMessage bmsInformationMessage = JSON.parseObject(content.toJSONString(),BmsInformationMessage.class);
                 sendResult = enhanceProduce.bmsInformationMessage(bmsInformationMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.CHARGING_PILE_STARTS_CHARGING:
-                ChargingPileStartsChargingMessage chargingPileStartsChargingMessage = JSON.parseObject(jsonObject.toJSONString(),ChargingPileStartsChargingMessage.class);
+                ChargingPileStartsChargingMessage chargingPileStartsChargingMessage = JSON.parseObject(content.toJSONString(),ChargingPileStartsChargingMessage.class);
                 sendResult = enhanceProduce.chargingPileStartsChargingMessage(chargingPileStartsChargingMessage);
                 // 响应硬件
+                PlatformConfirmationCharging platformConfirmationCharging = new PlatformConfirmationCharging();
+                platformConfirmationCharging.setCharging_pile_code(chargingPileStartsChargingMessage.getCharging_pile_code());
+                platformConfirmationCharging.setCharging_gun_code(chargingPileStartsChargingMessage.getCharging_gun_code());
+                platformConfirmationCharging.setCard_number(chargingPileStartsChargingMessage.getAccount());
+                platformConfirmationCharging.setAccount_balance(BigDecimal.ZERO);
+                platformConfirmationCharging.setAuthentication(1);
+                // TODO 若是失败,给出失败原因
+                iotMessageProduce.sendMessage(deviceId, ServiceIdMenu.PLATFORM_CONFIRMATION_CHARGING.getKey(),messageUtil.platformConfirmationCharging(platformConfirmationCharging));
                 break;
             case SendTagConstant.PLATFORM_START_CHARGING_REPLY:
-                PlatformStartChargingReplyMessage platformStartChargingReplyMessage = JSON.parseObject(jsonObject.toJSONString(),PlatformStartChargingReplyMessage.class);
+                PlatformStartChargingReplyMessage platformStartChargingReplyMessage = JSON.parseObject(content.toJSONString(),PlatformStartChargingReplyMessage.class);
                 sendResult = enhanceProduce.platformStartChargingReplyMessage(platformStartChargingReplyMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.PLATFORM_STOP_CHARGING_REPLY:
-                PlatformStopChargingReplyMessage platformStopChargingReplyMessage = JSON.parseObject(jsonObject.toJSONString(),PlatformStopChargingReplyMessage.class);
+                PlatformStopChargingReplyMessage platformStopChargingReplyMessage = JSON.parseObject(content.toJSONString(),PlatformStopChargingReplyMessage.class);
                 sendResult = enhanceProduce.platformStopChargingReplyMessage(platformStopChargingReplyMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.TRANSACTION_RECORD:
-                TransactionRecordMessage transactionRecordMessage = JSON.parseObject(jsonObject.toJSONString(),TransactionRecordMessage.class);
+                TransactionRecordMessage transactionRecordMessage = JSON.parseObject(content.toJSONString(),TransactionRecordMessage.class);
                 sendResult = enhanceProduce.transactionRecordMessage(transactionRecordMessage);
                 // 响应硬件
                 ConfirmTransactionRecord confirmTransactionRecord = new ConfirmTransactionRecord();
@@ -187,27 +208,27 @@
                 iotMessageProduce.sendMessage(deviceId, ServiceIdMenu.CONFIRM_TRANSACTION_RECORD.getKey(),messageUtil.confirmTransactionRecord(confirmTransactionRecord));
                 break;
             case SendTagConstant.UPDATE_BALANCE_REPLY:
-                UpdateBalanceReplyMessage updateBalanceReplyMessage = JSON.parseObject(jsonObject.toJSONString(),UpdateBalanceReplyMessage.class);
+                UpdateBalanceReplyMessage updateBalanceReplyMessage = JSON.parseObject(content.toJSONString(),UpdateBalanceReplyMessage.class);
                 sendResult = enhanceProduce.updateBalanceReplyMessage(updateBalanceReplyMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.SYNCHRONIZE_OFFLINE_CARD_REPLY:
-                SynchronizeOfflineCardReplyMessage synchronizeOfflineCardReplyMessage = JSON.parseObject(jsonObject.toJSONString(),SynchronizeOfflineCardReplyMessage.class);
+                SynchronizeOfflineCardReplyMessage synchronizeOfflineCardReplyMessage = JSON.parseObject(content.toJSONString(),SynchronizeOfflineCardReplyMessage.class);
                 sendResult = enhanceProduce.synchronizeOfflineCardReplyMessage(synchronizeOfflineCardReplyMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.CLEAR_OFFLINE_CARD_REPLY:
-                ClearOfflineCardReplyMessage clearOfflineCardReplyMessage = JSON.parseObject(jsonObject.toJSONString(),ClearOfflineCardReplyMessage.class);
+                ClearOfflineCardReplyMessage clearOfflineCardReplyMessage = JSON.parseObject(content.toJSONString(),ClearOfflineCardReplyMessage.class);
                 sendResult = enhanceProduce.clearOfflineCardReplyMessage(clearOfflineCardReplyMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.WORKING_PARAMETER_SETTING_REPLY:
-                WorkingParameterSettingReplyMessage workingParameterSettingReplyMessage = JSON.parseObject(jsonObject.toJSONString(),WorkingParameterSettingReplyMessage.class);
+                WorkingParameterSettingReplyMessage workingParameterSettingReplyMessage = JSON.parseObject(content.toJSONString(),WorkingParameterSettingReplyMessage.class);
                 sendResult = enhanceProduce.workingParameterSettingReplyMessage(workingParameterSettingReplyMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.TIMING_SETTING:
-                TimingSettingMessage timingSettingMessage = JSON.parseObject(jsonObject.toJSONString(),TimingSettingMessage.class);
+                TimingSettingMessage timingSettingMessage = JSON.parseObject(content.toJSONString(),TimingSettingMessage.class);
                 sendResult = enhanceProduce.timingSettingMessage(timingSettingMessage);
                 // 响应硬件 对时设置应答
                 TimingSettingReply timingSettingReply = new TimingSettingReply();
@@ -216,27 +237,27 @@
                 iotMessageProduce.sendMessage(deviceId, ServiceIdMenu.TIMING_SETTING_REPLY.getKey(),messageUtil.timingSettingReply(timingSettingReply));
                 break;
             case SendTagConstant.SETUP_BILLING_MODEL_REPLY:
-                SetupBillingModelReplyMessage setupBillingModelReplyMessage = JSON.parseObject(jsonObject.toJSONString(),SetupBillingModelReplyMessage.class);
+                SetupBillingModelReplyMessage setupBillingModelReplyMessage = JSON.parseObject(content.toJSONString(),SetupBillingModelReplyMessage.class);
                 sendResult = enhanceProduce.setupBillingModelReplyMessage(setupBillingModelReplyMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.GROUND_LOCK_REAL_TIME_DATA:
-                GroundLockRealTimeDataMessage groundLockRealTimeDataMessage = JSON.parseObject(jsonObject.toJSONString(),GroundLockRealTimeDataMessage.class);
+                GroundLockRealTimeDataMessage groundLockRealTimeDataMessage = JSON.parseObject(content.toJSONString(),GroundLockRealTimeDataMessage.class);
                 sendResult = enhanceProduce.groundLockRealTimeDataMessage(groundLockRealTimeDataMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.CHARGING_PILE_RETURNS_GROUND_LOCK_DATA:
-                ChargingPileReturnsGroundLockDataMessage chargingPileReturnsGroundLockDataMessage = JSON.parseObject(jsonObject.toJSONString(),ChargingPileReturnsGroundLockDataMessage.class);
+                ChargingPileReturnsGroundLockDataMessage chargingPileReturnsGroundLockDataMessage = JSON.parseObject(content.toJSONString(),ChargingPileReturnsGroundLockDataMessage.class);
                 sendResult = enhanceProduce.chargingPileReturnsGroundLockDataMessage(chargingPileReturnsGroundLockDataMessage);
                 // 响应硬件
                 break;
             case SendTagConstant.PLATFORM_RESTART_REPLY:
-                PlatformRestartReplyMessage platformRestartReplyMessage = JSON.parseObject(jsonObject.toJSONString(),PlatformRestartReplyMessage.class);
+                PlatformRestartReplyMessage platformRestartReplyMessage = JSON.parseObject(content.toJSONString(),PlatformRestartReplyMessage.class);
                 sendResult = enhanceProduce.platformRestartReplyMessage(platformRestartReplyMessage);
                 // 响应硬件
                 break;
             default:
-                PlatformRemoteUpdateReplyMessage platformRemoteUpdateReplyMessage = JSON.parseObject(jsonObject.toJSONString(),PlatformRemoteUpdateReplyMessage.class);
+                PlatformRemoteUpdateReplyMessage platformRemoteUpdateReplyMessage = JSON.parseObject(content.toJSONString(),PlatformRemoteUpdateReplyMessage.class);
                 sendResult = enhanceProduce.platformRemoteUpdateReplyMessage(platformRemoteUpdateReplyMessage);
                 // 响应硬件
                 break;
@@ -245,4 +266,63 @@
         return AjaxResult.success();
     }
 
+    @PostMapping(value = "/message/sendMessage")
+    public R sendMessage() {
+        // 运营平台远程控制启机
+//        PlatformStartCharging platformStartCharging = new PlatformStartCharging();
+//        platformStartCharging.setTransaction_serial_number("4200002375202409185150427245");
+//        platformStartCharging.setCharging_pile_code("3401231001200202");
+//        platformStartCharging.setCharging_gun_code("1");
+//        platformStartCharging.setCard_number("1833063878153543681");
+//        platformStartCharging.setAccount_balance(new BigDecimal(50));
+//        String message = iotMessageProduce.sendMessage(platformStartCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_START_CHARGING.getKey(), messageUtil.platformStartCharging(platformStartCharging));
+        // 运营平台远程停机
+//        PlatformStopCharging platformStopCharging = new PlatformStopCharging();
+//        platformStopCharging.setCharging_pile_code("3401231001200202");
+//        platformStopCharging.setCharging_gun_code("1");
+//        String message = iotMessageProduce.sendMessage(platformStopCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_STOP_CHARGING.getKey(),messageUtil.platformStopCharging(platformStopCharging));
+        // 修改余额
+//        UpdateBalance updateBalance = new UpdateBalance();
+//        updateBalance.setCharging_pile_code("3401231001200202");
+//        updateBalance.setCharging_gun_code("1");
+//        updateBalance.setPhysical_card_number("1833063878153543681");
+//        updateBalance.setAccount_balance(new BigDecimal(20));
+//        String message = iotMessageProduce.sendMessage(updateBalance.getCharging_pile_code(), ServiceIdMenu.UPDATE_BALANCE.getKey(),messageUtil.updateBalance(updateBalance));
+        // 充电桩工作参数设置
+//        WorkingParameterSetting workingParameterSetting = new WorkingParameterSetting();
+//        workingParameterSetting.setCharging_pile_code("3401231001200202");
+//        workingParameterSetting.setAllow_work(0);
+//        workingParameterSetting.setMaximum_output_power(220);
+//        String message = iotMessageProduce.sendMessage(workingParameterSetting.getCharging_pile_code(), ServiceIdMenu.WORKING_PARAMETER_SETTING.getKey(),messageUtil.workingParameterSetting(workingParameterSetting));
+        // 对时设置
+//        TimingSetting timingSetting = new TimingSetting();
+//        timingSetting.setCharging_pile_code("3401231001200202");
+//        System.err.println(CP56Time2aConverter.convertToCP56Time2a(new Date()));
+//        timingSetting.setCurrent_time(CP56Time2aConverter.convertToCP56Time2a(new Date()));
+//        String message = iotMessageProduce.sendMessage(timingSetting.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING.getKey(),messageUtil.timingSetting(timingSetting));
+        // TODO 罗  计费模型设置
+//        SetupBillingModel setupBillingModel = new SetupBillingModel();
+//        // 计费模型
+//        List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode("3401231001200202").getData();
+//        Map<Integer, TAccountingStrategyDetail> strategyPrice = StrategyUtil.getStrategyPrice(accountingStrategyDetails);
+//        // 价格设置
+//        AcquisitionBillingModeReply acquisitionBillingModeReply = new AcquisitionBillingModeReply();
+//        StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply);
+//        // 时段设置
+//        StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply);
+//        TAccountingStrategyDetail accountingStrategyDetail = accountingStrategyDetailClient.getDetailByCode("3401231001200202").getData();
+//        acquisitionBillingModeReply.setBilling_model_code(accountingStrategyDetail.getId().toString());
+//        acquisitionBillingModeReply.setCharging_pile_code("3401231001200202");
+//        acquisitionBillingModeReply.setLoss_ratio(BigDecimal.ZERO);
+//        BeanUtils.copyProperties(acquisitionBillingModeReply,setupBillingModel);
+//        System.err.println(setupBillingModel);
+//        String message = iotMessageProduce.sendMessage(setupBillingModel.getCharging_pile_code(), ServiceIdMenu.SETUP_BILLING_MODEL.getKey(),messageUtil.setupBillingModel(setupBillingModel));
+        // 远程重启
+        PlatformRestart platformRestart = new PlatformRestart();
+        platformRestart.setCharging_pile_code("3401231001200202");
+        platformRestart.setOperate(2);
+        String message = iotMessageProduce.sendMessage(platformRestart.getCharging_pile_code(), ServiceIdMenu.PLATFORM_RESTART.getKey(),messageUtil.platformRestart(platformRestart));
+        return R.ok(message);
+    }
+
 }
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java
index c7c76bd..5fdcac0 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java
@@ -44,6 +44,8 @@
     @Autowired
     private WorkingParameterSettingService workingParameterSettingService;
     @Autowired
+    private TimingSettingService timingSettingService;
+    @Autowired
     private TimingSettingReplyService timingSettingReplyService;
     @Autowired
     private SetupBillingModelService setupBillingModelService;
@@ -205,6 +207,15 @@
     }
 
     /**
+     * 对时设置
+     * @param timingSetting 实体对象
+     * @return
+     */
+    public String timingSetting(TimingSetting timingSetting){
+        timingSettingService.create(timingSetting);
+        return  getMessageJsonString(timingSetting, ServiceIdMenu.TIMING_SETTING.getValue());
+    }
+    /**
      * 对时设置应答
      * @param timingSettingReply 实体对象
      * @return
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java
index 4ebf980..e935937 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java
@@ -67,8 +67,13 @@
             }
             accountingStrategyDetails = accountingStrategyDetails.stream().sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)).collect(Collectors.toList());
             for (TAccountingStrategyDetail accountingStrategyDetail : accountingStrategyDetails) {
-                if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime()).isBefore(time)
-                        && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime()).isAfter(time)){
+                String startTime = accountingStrategyDetail.getStartTime();
+                String endTime = accountingStrategyDetail.getEndTime();
+                if("00:00".equals(endTime)){
+                    endTime = "23:59";
+                }
+                if(DateUtils.string2LocalTime(startTime + ":00").isBefore(time)
+                        && DateUtils.string2LocalTime(endTime + ":00").isAfter(time)){
                     switch (i){
                         case 1:
                             acquisitionBillingModeReply.setTime1(accountingStrategyDetail.getType().equals(1)?0
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/ErrorMessageMessageService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/ErrorMessageMessageService.java
new file mode 100644
index 0000000..180eaa3
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/ErrorMessageMessageService.java
@@ -0,0 +1,8 @@
+package com.ruoyi.integration.mongodb.service;
+
+import com.ruoyi.integration.mongodb.base.BaseService;
+import com.ruoyi.integration.rocket.model.ErrorMessageMessage;
+
+public interface ErrorMessageMessageService extends BaseService<ErrorMessageMessage> {
+
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/ErrorMessageMessageServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/ErrorMessageMessageServiceImpl.java
new file mode 100644
index 0000000..6443f1f
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/ErrorMessageMessageServiceImpl.java
@@ -0,0 +1,35 @@
+package com.ruoyi.integration.mongodb.service.impl;
+
+import com.ruoyi.integration.api.model.EndCharge;
+import com.ruoyi.integration.iotda.constant.IotConstant;
+import com.ruoyi.integration.mongodb.service.EndChargeService;
+import com.ruoyi.integration.mongodb.service.ErrorMessageMessageService;
+import com.ruoyi.integration.rocket.model.ErrorMessageMessage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+@Service
+public class ErrorMessageMessageServiceImpl implements ErrorMessageMessageService {
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
+    @Override
+    public int create(ErrorMessageMessage errorMessageMessage) {
+        mongoTemplate.save(errorMessageMessage);
+        return IotConstant.SUCCESS;
+    }
+
+    @Override
+    public ErrorMessageMessage findById(String id) {
+        return mongoTemplate.findById(id, ErrorMessageMessage.class);
+    }
+
+    @Override
+    public List<ErrorMessageMessage> findAll() {
+        return mongoTemplate.findAll(ErrorMessageMessage.class);
+    }
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java
index 6286373..0dc777d 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java
@@ -52,14 +52,14 @@
         BeanUtils.copyProperties(message,acquisitionBillingMode);
         acquisitionBillingModeService.create(acquisitionBillingMode);
         // 业务处理  计费模型请求应答  1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段
-        List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode(message.getCharging_pile_code()).getData();
-        Map<Integer, TAccountingStrategyDetail> strategyPrice = StrategyUtil.getStrategyPrice(accountingStrategyDetails);
-        // 价格设置
-        AcquisitionBillingModeReply acquisitionBillingModeReply = new AcquisitionBillingModeReply();
-        StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply);
-        // 时段设置
-        StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply);
-        iotMessageProduce.sendMessage(acquisitionBillingModeReply.getCharging_pile_code(), ServiceIdMenu.ACQUISITION_BILLING_MODE_REPLY.getKey(),messageUtil.acquisitionBillingModeReply(acquisitionBillingModeReply));
+//        List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode(message.getCharging_pile_code()).getData();
+//        Map<Integer, TAccountingStrategyDetail> strategyPrice = StrategyUtil.getStrategyPrice(accountingStrategyDetails);
+//        // 价格设置
+//        AcquisitionBillingModeReply acquisitionBillingModeReply = new AcquisitionBillingModeReply();
+//        StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply);
+//        // 时段设置
+//        StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply);
+//        iotMessageProduce.sendMessage(acquisitionBillingModeReply.getCharging_pile_code(), ServiceIdMenu.ACQUISITION_BILLING_MODE_REPLY.getKey(),messageUtil.acquisitionBillingModeReply(acquisitionBillingModeReply));
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ErrorMessageMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ErrorMessageMessageListener.java
new file mode 100644
index 0000000..8c67b98
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ErrorMessageMessageListener.java
@@ -0,0 +1,80 @@
+package com.ruoyi.integration.rocket.listener;
+
+import com.ruoyi.integration.mongodb.service.ErrorMessageMessageService;
+import com.ruoyi.integration.rocket.model.ErrorMessageMessage;
+import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.spring.annotation.MessageModel;
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@RocketMQMessageListener(
+        messageModel = MessageModel.CLUSTERING,
+        consumerGroup = "charge_error_message",
+        topic = "charge_error_message",
+        selectorExpression = "error_message",
+        consumeThreadMax = 5 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够
+)
+public class ErrorMessageMessageListener extends EnhanceMessageHandler<ErrorMessageMessage> implements RocketMQListener<ErrorMessageMessage> {
+
+    @Autowired
+    private ErrorMessageMessageService errorMessageMessageService;
+
+
+    @Override
+    protected void handleMessage(ErrorMessageMessage message) throws Exception {
+        // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
+        log.info("错误报文-业务消息处理:{}",message);
+        // 持久化消息
+        ErrorMessageMessage errorMessageMessage = new ErrorMessageMessage();
+        BeanUtils.copyProperties(message,errorMessageMessage);
+        errorMessageMessageService.create(errorMessageMessage);
+        // 业务处理
+    }
+
+    @Override
+    protected void handleMaxRetriesExceeded(ErrorMessageMessage message) {
+        // 当超过指定重试次数消息时此处方法会被调用
+        // 生产中可以进行回退或其他业务操作
+        log.error("消息消费失败,请执行后续处理");
+    }
+
+
+    /**
+     * 是否执行重试机制
+     */
+    @Override
+    protected boolean isRetry() {
+        return true;
+    }
+
+    @Override
+    protected boolean throwException() {
+        // 是否抛出异常,false搭配retry自行处理异常
+        return false;
+    }
+
+    /**
+     * 若需要处理消息过滤,在父级中进行统一处理,或者在此处实现之后,自行处理
+     * @param message 待处理消息
+     * @return true: 本次消息被过滤,false:不过滤
+     */
+    @Override
+    protected boolean filter(ErrorMessageMessage message) {
+        // 此处可做消息过滤
+        return false;
+    }
+
+    /**
+     * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型
+     */
+    @Override
+    public void onMessage(ErrorMessageMessage message) {
+        super.dispatchMessage(message);
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/OnlineMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/OnlineMessageListener.java
index d5ca13f..496d44a 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/OnlineMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/OnlineMessageListener.java
@@ -1,16 +1,10 @@
 package com.ruoyi.integration.rocket.listener;
 
 import com.ruoyi.integration.api.model.Online;
-import com.ruoyi.integration.api.model.OnlineReply;
-import com.ruoyi.integration.iotda.enums.ServiceIdMenu;
-import com.ruoyi.integration.iotda.utils.produce.IotMessageProduce;
-import com.ruoyi.integration.iotda.utils.tools.MessageUtil;
 import com.ruoyi.integration.mongodb.service.OnlineService;
-import com.ruoyi.integration.rocket.model.OnlineMessage;
 import com.ruoyi.integration.rocket.model.OnlineMessage;
 import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.rocketmq.spring.annotation.MessageModel;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
 import org.apache.rocketmq.spring.core.RocketMQListener;
 import org.springframework.beans.BeanUtils;
@@ -20,7 +14,6 @@
 @Slf4j
 @Component
 @RocketMQMessageListener(
-        messageModel = MessageModel.CLUSTERING,
         consumerGroup = "charge_online",
         topic = "charge_online",
         selectorExpression = "online", // 明确指定标签
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PingMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PingMessageListener.java
index dadb590..3b67a82 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PingMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PingMessageListener.java
@@ -1,16 +1,12 @@
 package com.ruoyi.integration.rocket.listener;
 
-import com.ruoyi.integration.api.model.Online;
 import com.ruoyi.integration.api.model.Ping;
-import com.ruoyi.integration.api.model.Pong;
-import com.ruoyi.integration.iotda.enums.ServiceIdMenu;
-import com.ruoyi.integration.iotda.utils.produce.IotMessageProduce;
-import com.ruoyi.integration.iotda.utils.tools.MessageUtil;
-import com.ruoyi.integration.mongodb.service.OnlineService;
 import com.ruoyi.integration.mongodb.service.PingService;
+import com.ruoyi.integration.rocket.model.OnlineMessage;
 import com.ruoyi.integration.rocket.model.PingMessage;
 import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.client.consumer.listener.MessageListener;
 import org.apache.rocketmq.spring.annotation.MessageModel;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
 import org.apache.rocketmq.spring.core.RocketMQListener;
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TransactionRecordMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TransactionRecordMessageListener.java
index f3a26e5..9019abf 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TransactionRecordMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TransactionRecordMessageListener.java
@@ -9,6 +9,8 @@
 import com.ruoyi.integration.mongodb.service.TransactionRecordService;
 import com.ruoyi.integration.rocket.model.TransactionRecordMessage;
 import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.order.api.model.TChargingOrder;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.rocketmq.spring.annotation.MessageModel;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
@@ -16,6 +18,8 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+
+import java.util.Objects;
 
 @Slf4j
 @Component
@@ -31,9 +35,7 @@
     @Autowired
     private TransactionRecordService transactionRecordService;
     @Autowired
-    private IotMessageProduce iotMessageProduce;
-    @Autowired
-    private MessageUtil messageUtil;
+    private ChargingOrderClient chargingOrderClient;
     @Override
     protected void handleMessage(TransactionRecordMessage message) throws Exception {
         // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
@@ -43,6 +45,11 @@
         BeanUtils.copyProperties(message,transactionRecord);
         transactionRecordService.create(transactionRecord);
         // 业务处理
+        TChargingOrder chargingOrder = chargingOrderClient.getOrderByCode(message.getTransaction_serial_number()).getData();
+        if(Objects.nonNull(chargingOrder)){
+            chargingOrder.setTotalElectricity(message.getTotal_electricity());
+            chargingOrderClient.updateChargingOrder(chargingOrder);
+        }
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BmsDemandAndChargerExportationMessage.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BmsDemandAndChargerExportationMessage.java
index 8e958b7..f7ac9d4 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BmsDemandAndChargerExportationMessage.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BmsDemandAndChargerExportationMessage.java
@@ -22,7 +22,8 @@
     private Integer bms_charging_mode; // BMS 充电模式(1:恒压充电;2:恒流充电)
     private BigDecimal bms_voltage_measurement_value; // BMS 充电电压测量值
     private BigDecimal bms_current_measurement_value; // BMS 充电电流测量值
-    private Integer bms_battery_voltage_and_group_number; // BMS 最高单体动力蓄电池电压及组号(1-12 位:最高单体动力蓄电池电压,数据分辨率:0.01 V/位,0 V 偏移量;数据范围:0~24 V;13-16 位:最高单体动力蓄电池电压所在组号,数据分辨率:1/位,0 偏移量;数据范围:0~15)
+    private BigDecimal bms_battery_voltage; //  最高电压 BMS 最高单体动力蓄电池电压及组号(1-12 位:最高单体动力蓄电池电压,数据分辨率:0.01 V/位,0 V 偏移量;数据范围:0~24 V;13-16 位:最高单体动力蓄电池电压所在组号,数据分辨率:1/位,0 偏移量;数据范围:0~15)
+    private Integer bms_group_number; //  所在组号 BMS 最高单体动力蓄电池电压及组号(1-12 位:最高单体动力蓄电池电压,数据分辨率:0.01 V/位,0 V 偏移量;数据范围:0~24 V;13-16 位:最高单体动力蓄电池电压所在组号,数据分辨率:1/位,0 偏移量;数据范围:0~15)
     private BigDecimal bms_charged_status; // BMS 当前荷电状态 SOC( %)
     private Integer bms_remaining_charging_time; // BMS 估算剩余充电时间
     private BigDecimal voltage_output_value; // 电桩电压输出值
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/EndChargeMessage.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/EndChargeMessage.java
index 4cfaafa..7231ba4 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/EndChargeMessage.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/EndChargeMessage.java
@@ -18,8 +18,8 @@
     private BigDecimal bms_battery_charging_status; // BMS 中止荷电状态 SOC
     private BigDecimal bms_minimum_battery_voltage; // BMS 动力蓄电池单体最低电压
     private BigDecimal bms_maximum_battery_voltage; // BMS 动力蓄电池单体最高电压
-    private Integer bms_minimum_battery_temperature; // BMS 动力蓄电池最低温度
-    private Integer bms_maximum_battery_temperature; // BMS 动力蓄电池最高温度
+    private BigDecimal bms_minimum_battery_temperature; // BMS 动力蓄电池最低温度
+    private BigDecimal bms_maximum_battery_temperature; // BMS 动力蓄电池最高温度
     private BigDecimal cumulative_charging_time; // 电桩累计充电时间
     private BigDecimal output_energy; // 电桩输出能量
     private String charger_code; // 电桩充电机编号
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ErrorMessageMessage.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ErrorMessageMessage.java
new file mode 100644
index 0000000..97f289e
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ErrorMessageMessage.java
@@ -0,0 +1,35 @@
+package com.ruoyi.integration.rocket.model;
+
+import com.ruoyi.integration.rocket.base.BaseMessage;
+import lombok.Data;
+
+@Data
+public class ErrorMessageMessage extends BaseMessage {
+
+    private String transaction_serial_number; // 交易流水号
+    private String charging_pile_code; // 桩编码
+    private String charging_gun_code; // 抢号
+    private Integer charger_identification_0; // 接收 SPN2560=0x00 的充电机辨识报文超时(0=正常,1=超时,10=不可信状态)
+    private Integer charger_identification_170; // 接收 SPN2560=0xAA 的充电机辨识报文超时(0=正常,1=超时,10=不可信状态)
+    private String charger_identification_reserve; // 预留位
+    private Integer time_synchronization_and_maximum_output_charger; // 接收充电机的时间同步和充电机最大输出能力报文超时(0=正常,1=超时,10=不可信状态)
+    private Integer charge_preparation; // 接收充电机完成充电准备报文超时(0=正常,1=超时,10=不可信状态)
+    private String charge_preparation_reserve; // 预留位
+    private Integer charging_status; // 接收充电机充电状态报文超时(0=正常,1=超时,10=不可信状态)
+    private Integer stop_charging; // 接收充电机中止充电报文超时(0=正常,1=超时,10=不可信状态)
+    private String charge_reserve; // 预留位
+    private Integer charging_statistics; // 接收充电机充电统计报文超时(0=正常,1=超时,10=不可信状态)
+    private String bms_other; // BMS 其他
+    private Integer bms_and_vehicle_identification; // 接收 BMS 和车辆的辨识报文超时(0=正常,1=超时,10=不可信状态)
+    private String bms_and_vehicle_identification_reserve; // 预留位
+    private Integer battery_charging_parameter; // 接收电池充电参数报文超时(0=正常,1=超时,10=不可信状态)
+    private Integer bms_completes_charging_preparation; // 接收 BMS 完成充电准备报文超时(0=正常,1=超时,10=不可信状态)
+    private String bms_completes_charging_preparation_reserve; // 预留位
+    private Integer total_battery_charging_status; // 接收电池充电总状态报文超时(0=正常,1=超时,10=不可信状态)
+    private Integer battery_charging_requirements; // 接收电池充电要求报文超时(0=正常,1=超时,10=不可信状态)
+    private Integer bms_stop_charging; // 接收 BMS 中止充电报文超时(0=正常,1=超时,10=不可信状态)
+    private Integer bms_reserve; // 预留位
+    private Integer bms_charging_statistics; // 接收 BMS 充电统计报文超时0=正常,1=超时,10=不可信状态)
+    private String charger_other; // 充电机其他
+
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ParameterSettingMessage.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ParameterSettingMessage.java
index 9a40e77..6efffe2 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ParameterSettingMessage.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ParameterSettingMessage.java
@@ -21,7 +21,7 @@
     private BigDecimal bms_maximum_charging_current; // BMS 最高允许充电电流
     private BigDecimal bms_battery_total_energy; // BMS 动力蓄电池标称总能量
     private BigDecimal bms_total_charging_voltage; // BMS 最高允许充电总电压
-    private Integer bms_maximum_temperature; // BMS 最高允许温度
+    private BigDecimal bms_maximum_temperature; // BMS 最高允许温度
     private BigDecimal bms_battery_charging_status; // BMS 整车动力蓄电池荷电状态 (soc)
     private BigDecimal bms_battery_voltage; // BMS 整车动力蓄电池当前电池 电压
     private BigDecimal maximum_output_voltage; // 电桩最高输出电压
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/UploadRealTimeMonitoringDataMessage.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/UploadRealTimeMonitoringDataMessage.java
index 8a8f765..dd1c034 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/UploadRealTimeMonitoringDataMessage.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/UploadRealTimeMonitoringDataMessage.java
@@ -22,10 +22,10 @@
     private Integer insertion_status; // 是否插枪(0:否,1:是)
     private BigDecimal output_voltage; // 输出电压,精确到小数点后一位;待机置零
     private BigDecimal output_current; // 输出电流,精确到小数点后一位;待机置零
-    private Integer gun_line_temperature; // 枪线温度,整形,偏移量-50;待机置零
+    private BigDecimal gun_line_temperature; // 枪线温度,整形,偏移量-50;待机置零
     private String gun_line_code; // 枪线编码,没有置零
     private Integer soc; // SOC待机置零;交流桩置零
-    private Integer battery_temperature; // 电池组最高温度,整形,偏移量-50 ºC;待机置零;交流桩置零
+    private BigDecimal battery_temperature; // 电池组最高温度,整形,偏移量-50 ºC;待机置零;交流桩置零
     private Integer cumulative_charging_time; // 累计充电时间,单位:min;待机置零
     private Integer time_remaining; // 剩余时间,单位:min;待机置零、交流桩置零
     private BigDecimal charging_degree; // 充电度数,精确到小数点后四位;待机置零
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java
index ba614a5..a3a2137 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.integration.api.model.ErrorMessage;
 import com.ruoyi.integration.api.model.ParameterSetting;
 import com.ruoyi.integration.iotda.constant.SendTagConstant;
 import com.ruoyi.integration.rocket.model.*;
@@ -55,6 +56,16 @@
         message.setSource(SendTagConstant.END_CHARGE);
         return rocketMQEnhanceTemplate.send(TOPIC+SendTagConstant.END_CHARGE, SendTagConstant.END_CHARGE, message);
     }
+    /**
+     * 错误报文
+     */
+    public SendResult errorMessageMessage(ErrorMessageMessage message) {
+        // 设置业务key
+        message.setKey(UUID.randomUUID().toString());
+        // 设置消息来源,便于查询
+        message.setSource(SendTagConstant.ERROR_MESSAGE);
+        return rocketMQEnhanceTemplate.send(TOPIC+SendTagConstant.ERROR_MESSAGE, SendTagConstant.ERROR_MESSAGE, message);
+    }
 
     /**
      * 计费模型验证请求
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/util/RocketMQEnhanceTemplate.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/util/RocketMQEnhanceTemplate.java
index 69773c3..f54f22e 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/util/RocketMQEnhanceTemplate.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/util/RocketMQEnhanceTemplate.java
@@ -5,10 +5,12 @@
 import com.ruoyi.integration.rocket.configuration.RocketEnhanceProperties;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.client.producer.DefaultMQProducer;
 import org.apache.rocketmq.client.producer.SendResult;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
 import org.apache.rocketmq.spring.support.RocketMQHeaders;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.messaging.Message;
 import org.springframework.messaging.support.MessageBuilder;
 import org.springframework.util.StringUtils;
@@ -24,9 +26,6 @@
     private RocketEnhanceProperties rocketEnhanceProperties;
 
     public RocketMQTemplate getTemplate() {
-//        DefaultMQProducer producer = new DefaultMQProducer();
-//        producer.setProducerGroup("enhance_consumer_group");
-//        template.setProducer(producer);
         return template;
     }
 
@@ -62,7 +61,7 @@
     public <T extends BaseMessage> SendResult send(String destination, T message) {
         // 设置业务键,此处根据公共的参数进行处理
         // 更多的其它基础业务处理...
-        Message<T> sendMessage = MessageBuilder.withPayload(message).setHeader(RocketMQHeaders.KEYS, message.getKey()).build();
+        Message<T> sendMessage = MessageBuilder.withPayload(message).setHeader(RocketMQHeaders.TAGS, message.getKey()).build();
         SendResult sendResult = template.syncSend(destination, sendMessage);
         // 此处为了方便查看给日志转了json,根据选择选择日志记录方式,例如ELK采集
         log.info("[{}]同步消息[{}]发送结果[{}]", destination, JSONObject.toJSON(message), JSONObject.toJSON(sendResult));
@@ -77,7 +76,7 @@
     }
 
     public <T extends BaseMessage> SendResult send(String destination, T message, int delayLevel) {
-        Message<T> sendMessage = MessageBuilder.withPayload(message).setHeader(RocketMQHeaders.KEYS, message.getKey()).build();
+        Message<T> sendMessage = MessageBuilder.withPayload(message).setHeader(RocketMQHeaders.TAGS, message.getKey()).build();
         SendResult sendResult = template.syncSend(destination, sendMessage, 3000, delayLevel);
         log.info("[{}]延迟等级[{}]消息[{}]发送结果[{}]", destination, delayLevel, JSONObject.toJSON(message), JSONObject.toJSON(sendResult));
         return sendResult;
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java
index 1ad49f2..db0a79a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.order.controller;
 
 
+import com.ruoyi.account.api.dto.GiveVipDto;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -62,5 +63,26 @@
         vipOrderService.removeBatchByIds(Arrays.asList(id.split(",")));
         return AjaxResult.success();
     }
+
+    @PostMapping("/callBack")
+    public R callBack(@RequestParam("code")String code,@RequestParam("outTradeNo")String outTradeNo){
+
+        TVipOrder one = vipOrderService.lambdaQuery().eq(TVipOrder::getCode, code).one();
+        one.setSerialNumber(outTradeNo);
+        vipOrderService.updateById(one);
+        GiveVipDto giveVipDto = new GiveVipDto();
+        giveVipDto.setVipId(one.getVipId());
+        giveVipDto.setType(one.getVipType());
+        giveVipDto.setUserIds(one.getAppUserId().toString());
+
+
+
+        appUserClient.giveVip(giveVipDto);
+
+        return R.ok();
+
+    }
+
+
 }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
index 89ce5e6..843efa2 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -484,6 +484,7 @@
         TShoppingOrder shoppingOrder = this.baseMapper.selectOne(Wrappers.lambdaQuery(TShoppingOrder.class).eq(TShoppingOrder::getCode, code));
         shoppingOrder.setPaymentStatus(2);
         shoppingOrder.setSerialNumber(outTradeNo);
+        shoppingOrder.setPayTime(LocalDateTime.now());
         this.updateById(shoppingOrder);
         //如果是优惠券,赠送优惠券
         if (shoppingOrder.getOrderType()==2){
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 68c3b1d..3c00f46 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -39,6 +39,7 @@
         <result column="need_elec" property="needElec" />
         <result column="create_time" property="createTime" />
         <result column="del_flag" property="delFlag" />
+        <result column="total_electricity" property="totalElectricity" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -46,7 +47,7 @@
         id, code, order_type, order_classification, app_user_id, app_user_car_id,site_id, parking_lot_id, charging_pile_id, charging_gun_id,
             start_time, end_time, status, recharge_amount, recharge_payment_type, recharge_payment_status, recharge_serial_number,
             order_amount, app_coupon_id, coupon_discount_amount, vip_discount, vip_discount_amount, payment_amount, refund_code,
-            refund_amount, refund_status, refund_serial_number, refund_time, create_time, del_flag,need_elec
+            refund_amount, refund_status, refund_serial_number, refund_time, create_time, del_flag,need_elec,total_electricity
     </sql>
 
     
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
index d79f29b..c5c808c 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
@@ -129,6 +129,7 @@
                     System.err.println("----收到购物回调");
                     break;
                 case "HY":
+                    System.err.println("----收到会员回调");
                     break;
             }
 

--
Gitblit v1.7.1