|
|
@@ -429,49 +429,73 @@ public class DeviceMsgHandle {
|
|
|
JSONArray data = jsonObject.getJSONArray("data");
|
|
|
int port = data.getInteger(2);
|
|
|
int status = data.getInteger(3);
|
|
|
- //关闭急停和急停完,停止充电,获取设备状态
|
|
|
- DeviceParam dataParam = new DeviceParam();
|
|
|
- dataParam.setDeviceId(imei);
|
|
|
- dataParam.setCcid(imei);
|
|
|
- deviceControlerService.sendPortDetailCmd(dataParam);
|
|
|
|
|
|
- logger.info(imei+ ":急停停充>>>上报交易记录>>>");
|
|
|
- deviceControlerService.stopCharge(imei, imei, port);
|
|
|
- //查询计费模板
|
|
|
- QueryWrapper<BillingModel> billingModelQueryWrapper = new QueryWrapper<>();
|
|
|
- billingModelQueryWrapper.eq("device_imei", imei);
|
|
|
- BillingModel model = billingModelService.getOne(billingModelQueryWrapper);
|
|
|
+ //关闭急停不处理
|
|
|
+ if(status==0){
|
|
|
+ logger.info("关闭急停不处理{}", imei);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
QueryWrapper<OrderStatus> orderStatusQueryWrapper = new QueryWrapper<>();
|
|
|
orderStatusQueryWrapper.eq("device_imei", imei)
|
|
|
.eq("guns_code", port)
|
|
|
.orderByDesc("create_time"
|
|
|
).last("limit 1");
|
|
|
OrderStatus statusServiceOne = orderStatusService.getOne(orderStatusQueryWrapper);
|
|
|
- statusServiceOne.setEndTime(System.currentTimeMillis());
|
|
|
- DeviceConnectionMsg deviceConnection = socketHandle.getDeviceConnection(statusServiceOne.getPileCode());
|
|
|
- if (status == 1) {
|
|
|
- logger.info(statusServiceOne.getPileCode() + ":急停停充>>>上报交易记录>>>");
|
|
|
- byte[] encrypt = new byte[0];
|
|
|
- if (port == 1) {
|
|
|
- //急停停充:急停状态下:1.向设备发起结束充电,结算交易订单(交给结束充电处理;但是要考虑是急停的原因),2.上报的充电结束的订单式
|
|
|
+ if (statusServiceOne == null) {
|
|
|
+ logger.info("没有急停待处理订单{}", imei);
|
|
|
+ deviceControlerService.sendImeiDetail(imei);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (statusServiceOne.getTransactionOrderReplyStatus() == StatusConstant.TRANSACTION_ORDER_REPLY_STATUS_SUCC) {
|
|
|
+ logger.info("订单状态已上报成功{},id:{}", imei, statusServiceOne.getId());
|
|
|
+ deviceControlerService.sendImeiDetail(imei);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- Map<String, BigDecimal> map = transMoney.compute(1, model, statusServiceOne.getCreateTime(), statusServiceOne.getEndTime());
|
|
|
+ statusServiceOne.setReasonStopCharging(TransConstant.EMERGENCY_STOP_EXCEPTION_STOP);
|
|
|
+ orderStatusService.updateById(statusServiceOne);
|
|
|
|
|
|
- encrypt = transactionFlowPushFrame.sendTrans(deviceConnection, statusServiceOne.getTransOrder(), statusServiceOne.getPileCode(), (byte) 1, statusServiceOne.getCreateTime(), statusServiceOne.getEndTime(), model, statusServiceOne.getCard(), map, TransConstant.EMERGENCY_STOP_EXCEPTION_STOP);
|
|
|
- } else if (port == 2) {
|
|
|
- //TODO:这里还是模拟数据上报
|
|
|
+ logger.info(imei+ ":急停停充关闭充电>>>");
|
|
|
+ deviceControlerService.stopCharge(imei, imei, port);
|
|
|
|
|
|
- Map<String, BigDecimal> map = transMoney.compute(2, model, statusServiceOne.getCreateTime(), statusServiceOne.getEndTime());
|
|
|
- //模拟3.5千瓦
|
|
|
- encrypt = transactionFlowPushFrame.sendTrans(deviceConnection, statusServiceOne.getTransOrder(), statusServiceOne.getPileCode(), (byte) 2, statusServiceOne.getCreateTime(), statusServiceOne.getEndTime(), model, statusServiceOne.getCard(), map, TransConstant.EMERGENCY_STOP_EXCEPTION_STOP);
|
|
|
- }
|
|
|
- statusServiceOne.setOriginalText(encrypt);
|
|
|
- statusServiceOne.setReasonStopCharging(TransConstant.EMERGENCY_STOP_EXCEPTION_STOP);
|
|
|
- statusServiceOne.setStopChargingReply(StatusConstant.STOP_CHARGING_REPLY_OK);
|
|
|
- statusServiceOne.setNowOrderStatus(StatusConstant.NOW_ORDER_STATUS_CHARGING_ENDING);
|
|
|
- statusServiceOne.setTransactionOrderReportingActionStatus(StatusConstant.TRANSACTION_ORDER_REPORTING_ACTION_STATUS_OK);
|
|
|
- orderStatusService.updateById(statusServiceOne);
|
|
|
- }
|
|
|
+// //查询计费模板
|
|
|
+// QueryWrapper<BillingModel> billingModelQueryWrapper = new QueryWrapper<>();
|
|
|
+// billingModelQueryWrapper.eq("device_imei", imei);
|
|
|
+// BillingModel model = billingModelService.getOne(billingModelQueryWrapper);
|
|
|
+//
|
|
|
+// orderStatusQueryWrapper.eq("device_imei", imei)
|
|
|
+// .eq("guns_code", port)
|
|
|
+// .orderByDesc("create_time"
|
|
|
+// ).last("limit 1");
|
|
|
+// OrderStatus statusServiceOne = orderStatusService.getOne(orderStatusQueryWrapper);
|
|
|
+// statusServiceOne.setEndTime(System.currentTimeMillis());
|
|
|
+// DeviceConnectionMsg deviceConnection = socketHandle.getDeviceConnection(statusServiceOne.getPileCode());
|
|
|
+//
|
|
|
+// if (status == 1) {
|
|
|
+// logger.info(statusServiceOne.getPileCode() + ":急停停充>>>上报交易记录>>>");
|
|
|
+// byte[] encrypt = new byte[0];
|
|
|
+// if (port == 1) {
|
|
|
+// //急停停充:急停状态下:1.向设备发起结束充电,结算交易订单(交给结束充电处理;但是要考虑是急停的原因),2.上报的充电结束的订单式
|
|
|
+//
|
|
|
+// Map<String, BigDecimal> map = transMoney.compute(1, model, statusServiceOne.getCreateTime(), statusServiceOne.getEndTime());
|
|
|
+//
|
|
|
+// encrypt = transactionFlowPushFrame.sendTrans(deviceConnection, statusServiceOne.getTransOrder(), statusServiceOne.getPileCode(), (byte) 1, statusServiceOne.getCreateTime(), statusServiceOne.getEndTime(), model, statusServiceOne.getCard(), map, TransConstant.EMERGENCY_STOP_EXCEPTION_STOP);
|
|
|
+// } else if (port == 2) {
|
|
|
+// //TODO:这里还是模拟数据上报
|
|
|
+//
|
|
|
+// Map<String, BigDecimal> map = transMoney.compute(2, model, statusServiceOne.getCreateTime(), statusServiceOne.getEndTime());
|
|
|
+// //模拟3.5千瓦
|
|
|
+// encrypt = transactionFlowPushFrame.sendTrans(deviceConnection, statusServiceOne.getTransOrder(), statusServiceOne.getPileCode(), (byte) 2, statusServiceOne.getCreateTime(), statusServiceOne.getEndTime(), model, statusServiceOne.getCard(), map, TransConstant.EMERGENCY_STOP_EXCEPTION_STOP);
|
|
|
+// }
|
|
|
+// statusServiceOne.setOriginalText(encrypt);
|
|
|
+// statusServiceOne.setReasonStopCharging(TransConstant.EMERGENCY_STOP_EXCEPTION_STOP);
|
|
|
+// statusServiceOne.setStopChargingReply(StatusConstant.STOP_CHARGING_REPLY_OK);
|
|
|
+// statusServiceOne.setNowOrderStatus(StatusConstant.NOW_ORDER_STATUS_CHARGING_ENDING);
|
|
|
+// statusServiceOne.setTransactionOrderReportingActionStatus(StatusConstant.TRANSACTION_ORDER_REPORTING_ACTION_STATUS_OK);
|
|
|
+// orderStatusService.updateById(statusServiceOne);
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
//启动充电
|
|
|
@@ -635,7 +659,9 @@ public class DeviceMsgHandle {
|
|
|
//如果是用户手动停止充电 则不处理状态
|
|
|
if (statusServiceOne.getReasonStopCharging() == TransConstant.APP_REMOTE_STOP) {
|
|
|
logger.info(statusServiceOne.getPileCode() + ":云快充>>>>>>远程停充>>>>");
|
|
|
- } else {
|
|
|
+ } else if(statusServiceOne.getReasonStopCharging()==TransConstant.EMERGENCY_STOP_EXCEPTION_STOP){
|
|
|
+ logger.info(statusServiceOne.getPileCode() + ":云快充>>>>>>急停停止>>>>");
|
|
|
+ }else {
|
|
|
if(statusServiceOne.getReasonStopCharging()==0){
|
|
|
logger.info(statusServiceOne.getPileCode() + ":充满主动>>>>>>停充>>>>");
|
|
|
statusServiceOne.setReasonStopCharging(TransConstant.MANUAL_STOP);
|
|
|
@@ -725,6 +751,10 @@ public class DeviceMsgHandle {
|
|
|
if(portStatus>20){
|
|
|
return;
|
|
|
}
|
|
|
+ //端口可能干扰导致为错误的端口
|
|
|
+ if(port>2){
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
if (portStatus.equals(PortStatusConstant.FREE)) {
|
|
|
//处理特殊情况之后还要看枪状态变位上送
|