diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/HxpcPileOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/HxpcPileOrderController.java index 1b0851b7..4b1686c1 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/HxpcPileOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/HxpcPileOrderController.java @@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.xhpc.common.api.PileOrderService; -import com.xhpc.common.api.factory.PileOrderFallbackFactory; import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.common.data.redis.CacheOrderData; @@ -29,6 +28,7 @@ import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; @RestController @@ -56,8 +56,22 @@ public class HxpcPileOrderController extends BaseController { @GetMapping("/test/chargeOrder/pileStartup") private R test(@RequestParam String orderNo, @RequestParam Integer status, @RequestParam String remark) { - R r = pileOrderService.pileStop(orderNo, status, remark); - return r; + //获取实时订单 + String key ="order:"+orderNo; + + Map cacheMap = redisService.getCacheMap("order:"+orderNo); + System.out.println(cacheMap.toString()); + + XhpcOrderRedisRecord xhpcOrderRedisRecord = redisService.getCacheObject(key); + + System.out.println(xhpcOrderRedisRecord.toString()); + + + + + return null; + // R r = pileOrderService.pileStop(orderNo, status, remark); + // return r; } @@ -264,6 +278,7 @@ public class HxpcPileOrderController extends BaseController { data.put("chargingDegree",chargingDegree); data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime()); data.put("serialNumber",orderNo.substring(0,16)); + data.put("parkingInstructions","在非充电情况下占用车位按照0.30元/分钟收费"); map.put("data", data); JSONObject json = new JSONObject(map); @@ -452,8 +467,8 @@ public class HxpcPileOrderController extends BaseController { } } - - xhpcHistoryOrder.setChargeOrderId(hxpcChargeOrder.getChargeOrderId()); + Long chargeOrderId = hxpcChargeOrder.getChargeOrderId(); + xhpcHistoryOrder.setChargeOrderId(chargeOrderId); xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId()); xhpcHistoryOrder.setUserId(userId); xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId()); @@ -481,10 +496,7 @@ public class HxpcPileOrderController extends BaseController { // xhpcHistoryOrderService.insert(xhpcHistoryOrder); hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder); - //删除实时数据,获取最新的实时数据 - //hxpcChargeOrderService.deleteRealTimeOrder(hxpcChargeOrder.getChargeOrderId()); - //添加新的实时数据 Map map = new HashMap<>(); map.put("code", 500); @@ -498,6 +510,60 @@ public class HxpcPileOrderController extends BaseController { return R.ok(); } + + private void add(XhpcHistoryOrder xhpcHistoryOrder,HxpcChargeOrder hxpcChargeOrder,Map cacheMap){ + Date date =new Date(); + Long chargeOrderId = hxpcChargeOrder.getChargeOrderId(); + //删除实时数据,获取最新的实时数据 + xhpcRealTimeOrderService.deleteRealTimeOrder(hxpcChargeOrder.getChargeOrderId()); + //添加新的实时数据 + + + + + + + + + //添加redis到数据库 + XhpcOrderRedisRecord xhpcOrderRedisRecord =new XhpcOrderRedisRecord(); + xhpcOrderRedisRecord.setChargeOrderId(chargeOrderId); + xhpcOrderRedisRecord.setHistoryOrderOd(xhpcHistoryOrder.getHistoryOrderId()); + if(cacheMap.get("endSoc") !=null){ + xhpcOrderRedisRecord.setEndSoc(cacheMap.get("endSoc").toString()); + } + if(cacheMap.get("status") !=null){ + xhpcOrderRedisRecord.setStatus(cacheMap.get("status").toString()); + } + if(cacheMap.get("balance") !=null){ + xhpcOrderRedisRecord.setBalance(cacheMap.get("balance").toString()); + } + if(cacheMap.get("tel") !=null){ + xhpcOrderRedisRecord.setTel(cacheMap.get("tel").toString()); + } + if(cacheMap.get("startSoc") !=null){ + xhpcOrderRedisRecord.setStartSoc(cacheMap.get("startSoc").toString()); + } + if(cacheMap.get("startResult") !=null){ + xhpcOrderRedisRecord.setStartResult(cacheMap.get("startResult").toString()); + } + if(cacheMap.get("realtimeDataList") !=null){ + xhpcOrderRedisRecord.setRealtimeDataList(cacheMap.get("realtimeDataList").toString()); + } + if(cacheMap.get("remainingTime") !=null){ + xhpcOrderRedisRecord.setRemainingTime(cacheMap.get("remainingTime").toString()); + } + if(cacheMap.get("rateModelId") !=null){ + xhpcOrderRedisRecord.setRateModelId(cacheMap.get("rateModelId").toString()); + } + xhpcOrderRedisRecord.setCreateTime(date); + hxpcChargeOrderService.addXhpcOrderRedisRecord(xhpcOrderRedisRecord); + + } + + + + /** * @param status 状态 * @param remark 备注 diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcOrderRedisRecord.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcOrderRedisRecord.java new file mode 100644 index 00000000..f6c1e98c --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcOrderRedisRecord.java @@ -0,0 +1,193 @@ +package com.xhpc.order.domain; + +import com.xhpc.common.core.web.domain.BaseEntity; + +/** + * 订单redis数据 + */ +public class XhpcOrderRedisRecord extends BaseEntity { + + /** + * 订单redis数据id + */ + private Long orderRedisRecordId; + /** + * 充电订单id + */ + private Long chargeOrderId; + /** + * 历史订单id + */ + private Long historyOrderOd; + /** + * 结束soc + */ + private String endSoc; + /** + * 状态 + */ + private String status; + /** + * 下发余额 + */ + private String balance; + /** + * 用户电话 + */ + private String tel; + /** + * 开始soc + */ + private String startSoc; + /** + * 启动结果 + */ + private String startResult; + /** + * 实时数据 + */ + private String realtimeDataList; + /** + * 剩余时间 + */ + private String remainingTime; + /** + * 计费模型id + */ + private String rateModelId; + /** + * 删除标志(0代表存在 1代表删除) + */ + private String delFlag; + + public Long getOrderRedisRecordId() { + + return orderRedisRecordId; + } + + public void setOrderRedisRecordId(Long orderRedisRecordId) { + + this.orderRedisRecordId = orderRedisRecordId; + } + + public Long getChargeOrderId() { + + return chargeOrderId; + } + + public void setChargeOrderId(Long chargeOrderId) { + + this.chargeOrderId = chargeOrderId; + } + + public Long getHistoryOrderOd() { + + return historyOrderOd; + } + + public void setHistoryOrderOd(Long historyOrderOd) { + + this.historyOrderOd = historyOrderOd; + } + + public String getEndSoc() { + + return endSoc; + } + + public void setEndSoc(String endSoc) { + + this.endSoc = endSoc; + } + + public String getStatus() { + + return status; + } + + public void setStatus(String status) { + + this.status = status; + } + + public String getBalance() { + + return balance; + } + + public void setBalance(String balance) { + + this.balance = balance; + } + + public String getTel() { + + return tel; + } + + public void setTel(String tel) { + + this.tel = tel; + } + + public String getStartSoc() { + + return startSoc; + } + + public void setStartSoc(String startSoc) { + + this.startSoc = startSoc; + } + + public String getStartResult() { + + return startResult; + } + + public void setStartResult(String startResult) { + + this.startResult = startResult; + } + + public String getRealtimeDataList() { + + return realtimeDataList; + } + + public void setRealtimeDataList(String realtimeDataList) { + + this.realtimeDataList = realtimeDataList; + } + + public String getRemainingTime() { + + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + + this.remainingTime = remainingTime; + } + + public String getRateModelId() { + + return rateModelId; + } + + public void setRateModelId(String rateModelId) { + + this.rateModelId = rateModelId; + } + + public String getDelFlag() { + + return delFlag; + } + + public void setDelFlag(String delFlag) { + + this.delFlag = delFlag; + } + +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/HxpcChargeOrderMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/HxpcChargeOrderMapper.java index a9c7a840..c55e4d18 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/HxpcChargeOrderMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/HxpcChargeOrderMapper.java @@ -3,6 +3,7 @@ package com.xhpc.order.mapper; import com.xhpc.common.domain.XhpcChargingPile; import com.xhpc.common.domain.XhpcTerminal; import com.xhpc.order.domain.HxpcChargeOrder; +import com.xhpc.order.domain.XhpcOrderRedisRecord; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -105,4 +106,9 @@ public interface HxpcChargeOrderMapper { //获取桩信息 Map getXhpcChargingPileById(@Param("chargingPileid") Long chargingPileid); + /** + * 添加redis数据到数据库 + */ + void addXhpcOrderRedisRecord(XhpcOrderRedisRecord xhpcOrderRedisRecord); + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IHxpcChargeOrderService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IHxpcChargeOrderService.java index 1f8f48b6..01729618 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IHxpcChargeOrderService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IHxpcChargeOrderService.java @@ -3,6 +3,7 @@ package com.xhpc.order.service; import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.order.domain.HxpcChargeOrder; +import com.xhpc.order.domain.XhpcOrderRedisRecord; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -88,4 +89,10 @@ public interface IHxpcChargeOrderService { */ Map getOperatorMessage( Long chargingStationId); + + /** + * 添加redis数据到数据库 + */ + void addXhpcOrderRedisRecord(XhpcOrderRedisRecord xhpcOrderRedisRecord); + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/HxpcChargeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/HxpcChargeOrderServiceImpl.java index cc279534..1f132d72 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/HxpcChargeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/HxpcChargeOrderServiceImpl.java @@ -9,8 +9,11 @@ import com.xhpc.common.data.redis.SeqUtil; import com.xhpc.common.domain.XhpcTerminal; import com.xhpc.common.redis.service.RedisService; import com.xhpc.order.domain.HxpcChargeOrder; +import com.xhpc.order.domain.XhpcOrderRedisRecord; import com.xhpc.order.mapper.HxpcChargeOrderMapper; import com.xhpc.order.service.IHxpcChargeOrderService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -38,6 +41,8 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { private PowerPileService powerPileService; @Autowired private RedisService redisService; + + private static final Logger logger = LoggerFactory.getLogger(HxpcChargeOrderServiceImpl.class); //队列名称 private final static String NAME = "webSocket"; @@ -106,6 +111,14 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { return AjaxResult.error(1107, "此终端"+status+"中,请选择其他终端充电"); } } + if(cacheMap.get("vehicleGunStatus") !=null){ + return AjaxResult.error(1106, "未知的终端状态,请选择其他终端充电"); + }else{ + String vehicleGunStatus = cacheMap.get("vehicleGunStatus").toString(); + if(!"是".equals(vehicleGunStatus)){ + return AjaxResult.error(1107, "请插枪"); + } + } } //终端信息 @@ -132,6 +145,9 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { startChargingData.setBalance(Double.valueOf(balance).intValue()); startChargingData.setVersion("0A"); R r1 = powerPileService.startCharging(startChargingData); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+r1.getCode()+">>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+r1.getMsg()+">>>>>>>>>>>>>>>>>"); if(r1.getCode() !=200){ return AjaxResult.error(r1.getMsg()); } @@ -179,6 +195,9 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { serialNumberMessage.setType(1); hxpcChargeOrderMapper.updateXhpcChargeOrder(serialNumberMessage); R oa = powerPileService.stopCharging(xhpcTerminal.getPileSerialNumber(), xhpcTerminal.getSerialNumber(), "OA"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<停止充电返回>>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+oa.getCode()+">>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+oa.getMsg()+">>>>>>>>>>>>>>>>>"); if(oa.getCode() !=200){ return AjaxResult.error(oa.getMsg()); } @@ -215,6 +234,10 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { return hxpcChargeOrderMapper.getOperatorMessage(chargingStationId); } + @Override + public void addXhpcOrderRedisRecord(XhpcOrderRedisRecord xhpcOrderRedisRecord) { + hxpcChargeOrderMapper.addXhpcOrderRedisRecord(xhpcOrderRedisRecord); + } } diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml index a66b7cf5..9ebe7dc0 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml @@ -301,4 +301,115 @@ power as power from xhpc_charging_pile where charging_pile_id=#{chargingPileid} + + + insert into xhpc_order_redis_record + + + charge_order_id, + + + history_order_id, + + + end_soc, + + + status, + + + balance, + + + tel, + + + start_soc, + + + start_result, + + + realtime_data_list, + + + remaining_time, + + + rate_model_id, + + + del_flag, + + + create_time, + + + create_by, + + + update_time, + + + update_by, + + + remark + + + + + #{chargeOrderId}, + + + #{historyOrderOd}, + + + #{endSoc}, + + + #{status}, + + + #{balance}, + + + #{tel}, + + + #{startSoc}, + + + #{startResult}, + + + #{realtimeDataList}, + + + #{remainingTime}, + + + #{rateModelId}, + + + #{delFlag}, + + + #{createTime}, + + + #{createBy}, + + + #{updateTime}, + + + #{updateBy}, + + + #{remark} + + + \ No newline at end of file diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml index f9c7732b..8f4d70dd 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml @@ -311,6 +311,7 @@ LEFT JOIN xhpc_terminal as te on te.terminal_id = ho.terminal_id left join xhpc_charge_order as co on co.charge_order_id =ho.charge_order_id where ho.status=0 and ho.del_flag=0 and ho.user_id =#{userId} + order by ho.create_time desc