diff --git a/xhpc-modules/pom.xml b/xhpc-modules/pom.xml index 70ae1acf..50a08d65 100644 --- a/xhpc-modules/pom.xml +++ b/xhpc-modules/pom.xml @@ -16,6 +16,7 @@ xhpc-user xhpc-payment xhpc-order + xhpc-wxma xhpc-modules diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java index 76fd7353..1a634e41 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java @@ -69,7 +69,7 @@ public class XhpcChargingPileServiceImpl implements IXhpcChargingPileService { Long chargingPileId = xhpcChargingPile.getChargingPileId(); if (xhpcChargingPile.getGunNumber() > 0) { - for (int i = 0; i < xhpcChargingPile.getGunNumber(); i++) { + for (int i = 1; i <= xhpcChargingPile.getGunNumber(); i++) { XhpcTerminal xhpcTerminal = new XhpcTerminal(); xhpcTerminal.setChargingStationId(chargingStationId); xhpcTerminal.setChargingPileId(chargingPileId); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/config/ApplicationContextRegister.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/config/ApplicationContextRegister.java deleted file mode 100644 index b37b93fb..00000000 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/config/ApplicationContextRegister.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.xhpc.order.config; - -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Component; - -/** - * @author yuyang - * @date 2021/8/9 20:31 - */ -@Component -@Lazy(false) -public class ApplicationContextRegister implements ApplicationContextAware { - - private static ApplicationContext APPLICATION_CONTEXT; - - /** - * 设置spring上下文 * * @param applicationContext spring上下文 * @throws BeansException - */ - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - APPLICATION_CONTEXT = applicationContext; - } - - public static ApplicationContext getApplicationContext() { - return APPLICATION_CONTEXT; - } -} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/HxpcChargeOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/HxpcChargeOrderController.java index bb0dbf99..b17e28e9 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/HxpcChargeOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/HxpcChargeOrderController.java @@ -73,5 +73,13 @@ public class HxpcChargeOrderController extends BaseController { return iHxpcChargeOrderService.stopUp(userId, serialNumber,chargingOrderId); } - + /** + * 桩回调接口 + * @return + */ + @GetMapping("/pileStatus") + public AjaxResult pileStatus(String orderNo,Integer status,String remark){ + iHxpcChargeOrderService.pileStatus(orderNo, status,remark); + return null; + } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/WebSocketController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/WebSocketController.java deleted file mode 100644 index 5ce7866c..00000000 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/WebSocketController.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.xhpc.order.controller; - -import com.xhpc.common.core.web.domain.AjaxResult; -import com.xhpc.common.redis.service.RedisService; -import com.xhpc.order.config.ApplicationContextRegister; -import com.xhpc.order.service.IHxpcChargeOrderService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Component; -import org.springframework.web.socket.server.standard.SpringConfigurator; - -import java.io.IOException; -import java.util.concurrent.CopyOnWriteArraySet; -import javax.websocket.OnClose; -import javax.websocket.OnError; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; - -/** - * @author yuyang - * @date 2021/8/9 14:33 - */ -@Component -@ServerEndpoint(value = "/websocket/{userId}") -public class WebSocketController { - - /** - * 静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。 - */ - private static int onlineCount = 0; - /** - * concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识 - */ - private static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet(); - /** - * 与某个客户端的连接会话,需要通过它来给客户端发送数据 - */ - private Session session; - //连接用户id - private Long userId; - - - /** - * 连接建立成功调用的方法 - * - * @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据 - */ - @OnOpen - public void onOpen(@PathParam("userId") Long userId, Session session) { - - this.userId = userId; - this.session = session; - System.out.println("userId:" + userId); - System.out.println("session:" + session); - webSocketSet.add(this); //加入set中 - addOnlineCount(); //在线数加1 - System.out.println("有新连接加入!当前在线人数为" + getOnlineCount()); - try { - this.session.getBasicRemote().sendText("推送消息"); - } catch (IOException e) { - e.printStackTrace(); - } - } - - - - /** - * 连接关闭调用的方法 - */ - @OnClose - public void onClose() { - - webSocketSet.remove(this); //从set中删除 - subOnlineCount(); //在线数减1 - System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount()); - } - - /** - * 收到客户端消息后调用的方法 - * - * @param message 客户端发送过来的消息 - * @param session 可选的参数 - */ - @OnMessage - public void onMessage(String message, Session session) { - - System.out.println("收到:" + this.userId + "的消息"); - System.out.println("来自客户端的消息:" + message); - try { - message = "{\n" + - " \"msg\": \"操作成功\",\n" + - " \"code\": 200,\n" + - " \"data\": {\n" + - " \"amountCharged\": 50.0,\n" + - " \"gunNumber\": \"1\",\n" + - " \"balance\": 10.00,\n" + - " \"chargingOrderId\": 3,\n" + - " \"soc\": \"12\",\n" + - " \"chargingTime\": \"21\",\n" + - " \"realTimeOrderId\": 8,\n" + - " \"electricCurrent\": 1.0,\n" + - " \"power\": null,\n" + - " \"chargingDegree\": 10.25,\n" + - " \"voltage\": 45.0,\n" + - " \"remainingTime\": \"45\"\n" + - " }\n" + - "}"; - //终端编号、订单信息需要获取 - ApplicationContext act = ApplicationContextRegister.getApplicationContext(); - RedisService redisService = act.getBean(RedisService.class); - Object cacheObject = redisService.getCacheObject("gun:1472583698524602.seqdec"); - System.out.println("cacheObject:" + cacheObject); - - this.session.getBasicRemote().sendText(message); - - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * 发生错误时调用 - * - * @param session - * @param error - */ - @OnError - public void onError(Session session, Throwable error) { - - System.out.println("发生错误"); - error.printStackTrace(); - } - - public static synchronized int getOnlineCount() { - - return onlineCount; - } - - public static synchronized void addOnlineCount() { - - WebSocketController.onlineCount++; - } - - public static synchronized void subOnlineCount() { - - WebSocketController.onlineCount--; - } - -} 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 20f336d7..7c7405af 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 @@ -13,6 +13,8 @@ import java.util.Map; */ public interface HxpcChargeOrderMapper { + + /** * 实时订单 * @param userId @@ -20,6 +22,8 @@ public interface HxpcChargeOrderMapper { */ int getHistotyChargeOrderMessage(@Param("userId") Long userId); + + Map getMessage(@Param("userId") Long userId); /** * 异常订单 * @param userId @@ -54,12 +58,34 @@ public interface HxpcChargeOrderMapper { * @param hxpcChargeOrder * @return */ - int addXhpcTerminalSerial(HxpcChargeOrder hxpcChargeOrder); + int addXhpcChargeOrder(HxpcChargeOrder hxpcChargeOrder); /** * 修改充电订单 * @param hxpcChargeOrder * @return */ - int updateXhpcTerminalSerial(HxpcChargeOrder hxpcChargeOrder); + int updateXhpcChargeOrder(HxpcChargeOrder hxpcChargeOrder); + + /** + * 获取充电订单数据 + * @param serialNumber 订单编号 + * @return + */ + HxpcChargeOrder getSerialNumberMessage(@Param("serialNumber") String serialNumber); + + /** + * 判断用户是第几次充电 + * @param userId + * @return + */ + int getCount(@Param("userId") Long userId); + + /** + * 活动 + * @return + */ + Map getPromotion(); + + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java index cf9efbb6..db1bf831 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java @@ -1,6 +1,8 @@ package com.xhpc.order.mapper; +import com.xhpc.order.domain.XhpcChargeOrderCurrent; import com.xhpc.order.domain.XhpcChargeOrderSoc; +import com.xhpc.order.domain.XhpcChargeOrderVoltage; import com.xhpc.order.domain.XhpcRealTimeOrder; import org.apache.ibatis.annotations.Param; @@ -29,6 +31,20 @@ public interface XhpcRealTimeOrderMapper { */ int addSOC(XhpcChargeOrderSoc xhpcChargeOrderSoc); + /** + * 添加订单实时电流 + * @param XhpcChargeOrderCurrent + * @return + */ + int addCurrent(XhpcChargeOrderCurrent XhpcChargeOrderCurrent); + + /** + * 添加订单实时电流 + * @param XhpcChargeOrderVoltage + * @return + */ + int addVoltage(XhpcChargeOrderVoltage xhpcChargeOrderVoltage); + /** * 实时订单接口 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 0f0dceb0..32b8b2ff 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 @@ -40,4 +40,15 @@ public interface IHxpcChargeOrderService { * @return */ AjaxResult stopUp(Long userId,String serialNumber,Long chargingOrderId); + + + /** + * 桩回调接口 + * @param orderNo 订单编号 + * @param status 订单状态 (启动状态 1成功 2失败 实时订单状态 3充电中 4 桩充电完成 5 用户停止充电 6桩异常停止充电 ) + * @param remark 失败的备注 + */ + void pileStatus(String orderNo,Integer status,String remark); + + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java index 78cbb9ed..b53f9df0 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java @@ -1,6 +1,7 @@ package com.xhpc.order.service; import com.xhpc.common.core.web.domain.AjaxResult; +import com.xhpc.order.domain.XhpcHistoryOrder; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -27,4 +28,12 @@ public interface IXhpcHistoryOrderService { * @return */ AjaxResult gethistotyOrderMessage(Long userId,Long historyOrderId,Integer type,Long chargingOrderId); + + /** + * 新增 历史订单信息 + * + * @param xhpcHistoryOrder 历史订单信息 + * @return 结果 + */ + void insert(XhpcHistoryOrder xhpcHistoryOrder); } 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 980eeb3a..456c13b4 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 @@ -1,6 +1,8 @@ package com.xhpc.order.service.impl; import cn.hutool.core.date.DateUtil; +import com.rabbitmq.client.Channel; +import com.rabbitmq.client.Connection; import com.xhpc.common.api.PowerPileService; import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.domain.AjaxResult; @@ -9,10 +11,14 @@ 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.XhpcHistoryOrder; import com.xhpc.order.mapper.HxpcChargeOrderMapper; import com.xhpc.order.service.IHxpcChargeOrderService; +import com.xhpc.order.service.IXhpcHistoryOrderService; +import com.xhpc.order.util.ConnectionRabbitMQUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import java.math.BigDecimal; @@ -35,9 +41,14 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { @Autowired private HxpcChargeOrderMapper hxpcChargeOrderMapper; @Autowired + private IXhpcHistoryOrderService xhpcHistoryOrderService; + @Autowired private PowerPileService powerPileService; @Autowired private RedisService redisService; + //队列名称 + private final static String NAME = "webSocket"; + @PostConstruct public void init(){ REDIS =redisService; @@ -50,6 +61,7 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { return AjaxResult.success(); } return AjaxResult.error(1201,"无实时数据"); + //return AjaxResult.success(hxpcChargeOrderMapper.getMessage(userId)); } @Override @@ -58,6 +70,7 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { } @Override + @Transactional public AjaxResult startUp(Long userId, String serialNumber,Integer type) { String pattern = "^([0-9]{16})"; Pattern compile = Pattern.compile(pattern); @@ -87,10 +100,21 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { } //终端状态是否空闲 //是否插枪 -// R r = powerPileService.terminalStatus(serialNumber); -// if(r.getCode() !=200){ -// return AjaxResult.error(r.getMsg()); -// } + Map cacheMap = REDIS.getCacheMap("gun:" + serialNumber); + if(cacheMap==null){ + return AjaxResult.error(1105, "未注册的终端,请选择其他终端充电"); + }else{ + if(cacheMap.get("status") ==null){ + return AjaxResult.error(1106, "未知的终端状态,请选择其他终端充电"); + }else{ + String status = cacheMap.get("status").toString(); + //不同的状态 + if("离线".equals(status)||"故障".equals(status) ||"充电".equals(status)){ + return AjaxResult.error(1107, "此终端"+status+"中,请选择其他终端充电"); + } + } + } + //终端信息 XhpcTerminal xhpcTerminal = hxpcChargeOrderMapper.getXhpcTerminalSerialNumber(serialNumber); if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) { @@ -104,12 +128,8 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { Date date = new Date(); String format = DateUtil.format(date, "yyMMddHHmmss"); //自增 - String number = "number:" + serialNumber; - String cacheObject = REDIS.getCacheObject(number); - String gunSerialNumber=serialNumber+format; - gunSerialNumber = getString(number, cacheObject, gunSerialNumber); + String orderNo = serialNumber + format + SeqUtil.seqDec("gun:" + serialNumber + ".seqdec"); - String orderNo = SeqUtil.seqDec("gun:" + gunSerialNumber + ".seqdec"); startChargingData.setOrderNo(orderNo); startChargingData.setPileNo(xhpcTerminal.getPileSerialNumber()); startChargingData.setGunId(xhpcTerminal.getSerialNumber()); @@ -119,15 +139,14 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { if(r1.getCode() !=200){ return AjaxResult.error(r1.getMsg()); } - //创建充电订单(充电启动soc初始值,结束是获取,并修改状态) HxpcChargeOrder hxpcChargeOrder = new HxpcChargeOrder(); hxpcChargeOrder.setChargingStationId(xhpcTerminal.getChargingStationId()); hxpcChargeOrder.setUserId(userId); hxpcChargeOrder.setTerminalId(xhpcTerminal.getTerminalId()); - hxpcChargeOrder.setSerialNumber(gunSerialNumber); + hxpcChargeOrder.setSerialNumber(orderNo); hxpcChargeOrder.setSource(0); - hxpcChargeOrder.setStatus(0); + hxpcChargeOrder.setStatus(-1); hxpcChargeOrder.setRateModelId(xhpcTerminal.getRateModelId()); if(type ==1){ hxpcChargeOrder.setChargingMode("小华充电微信"); @@ -135,58 +154,11 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { hxpcChargeOrder.setChargingMode("小华充电支付宝"); } hxpcChargeOrder.setStartTime(date); - hxpcChargeOrderMapper.addXhpcTerminalSerial(hxpcChargeOrder); + hxpcChargeOrderMapper.addXhpcChargeOrder(hxpcChargeOrder); return AjaxResult.success(); } - private String getString(String number, String cacheObject, String gunSerialNumber) { - - if(cacheObject !=null){ - if(cacheObject.length()==4){ - if("9999".equals(cacheObject)){ - REDIS.setCacheObject(number,1,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +"0001"; - }else{ - int value = Integer.parseInt(cacheObject)+1; - REDIS.setCacheObject(number,value,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +value; - } - }else if(cacheObject.length()==3){ - if("999".equals(cacheObject)){ - REDIS.setCacheObject(number,1000,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +"1000"; - }else{ - int value = Integer.parseInt(cacheObject)+1; - REDIS.setCacheObject(number,value,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +value; - } - }else if(cacheObject.length()==2){ - if("99".equals(cacheObject)){ - REDIS.setCacheObject(number,100,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +"100"; - }else{ - int value = Integer.parseInt(cacheObject)+1; - REDIS.setCacheObject(number,value,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +value; - } - }else{ - if("9".equals(cacheObject)){ - REDIS.setCacheObject(number,10,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +"10"; - }else{ - int value = Integer.parseInt(cacheObject)+1; - REDIS.setCacheObject(number,value,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +value; - } - } - }else{ - REDIS.setCacheObject(number,1,24L, TimeUnit.HOURS); - gunSerialNumber = gunSerialNumber +"0001"; - } - return gunSerialNumber; - } - @Override public AjaxResult stopUp(Long userId, String serialNumber,Long chargingOrderId) { @@ -208,4 +180,116 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { return AjaxResult.success(); } + /** + * 桩回调接口 + * @param orderNo 订单编号 + * @param status 订单状态 (启动状态 1成功 2失败 实时订单状态 3充电中 4 桩充电完成 5 用户停止充电 6桩异常停止充电 ) + * @param remark 失败的备注 + */ + @Override + public void pileStatus(String orderNo, Integer status,String remark) { + //解析订单编号 + String s = orderNo.split("\\.")[0]; + String s1 = s.split(":")[1]; + if(status ==1){ + update(orderNo,0, 0,null, s1,0); + }else if(status ==2){ + update(orderNo,-1, 1,remark, s1,0); + }else{ + if(status == 3){ + //发送实时数据 + } + if(status == 4 || status==5){ + //发送实时订单结束状态,并修改订单状态,生成一条历史订单 + update(orderNo,1, 0,null, s1,status); + } + if(status ==6){ + //订单异常,修改订单状态 + update(orderNo,2, 0,remark, s1,status); + } + } + //消息对了内容 + String message=""; + + rabbimt(message); + } + + private void update(String orderNo,Integer status,Integer delFlag, String remark, String serialNumber,Integer type) { + HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderMapper.getSerialNumberMessage(serialNumber); + hxpcChargeOrder.setStatus(status); + hxpcChargeOrder.setDelFlag(delFlag); + hxpcChargeOrder.setRemark(remark); + + Long userId = hxpcChargeOrder.getUserId(); + if(type==4 ||type ==5){ + Date date = new Date(); + //获取实时订单 + REDIS.getCacheObject(orderNo); + + //用户第几次充电 + int count = hxpcChargeOrderMapper.getCount(userId); + String state =""; + String discount =""; + if(count==0){ + //活动折扣 + Map promotion = hxpcChargeOrderMapper.getPromotion(); + if(promotion !=null){ + //state 1.总金额 2.金额 3.服务费 discount 折扣率 + state = promotion.get("state").toString(); + discount = promotion.get("discount").toString(); + } + } + + //生成一条历史订单 + XhpcHistoryOrder xhpcHistoryOrder =new XhpcHistoryOrder(); + xhpcHistoryOrder.setChargeOrderId(hxpcChargeOrder.getChargeOrderId()); + xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId()); + xhpcHistoryOrder.setUserId(userId); + xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId()); + xhpcHistoryOrder.setSerialNumber(hxpcChargeOrder.getSerialNumber()); + xhpcHistoryOrder.setStartSoc(hxpcChargeOrder.getStartSoc()); + xhpcHistoryOrder.setReconciliationStatus(0); + xhpcHistoryOrder.setSortingStatus(0); + xhpcHistoryOrder.setType(1); + xhpcHistoryOrder.setStatus(0); + xhpcHistoryOrder.setDelFlag(0); + xhpcHistoryOrder.setCreateTime(date); + //订单总价---运维服务费抽成 + //结束时soc + xhpcHistoryOrderService.insert(xhpcHistoryOrder); + + //充电订单 --结束soc、充电时长、充电度数 + hxpcChargeOrder.setEndTime(date); + if(type ==4){ + hxpcChargeOrder.setType(0); + }else{ + hxpcChargeOrder.setType(2); + } + + //实时数据存入MYsql、soc、电流、电压 + + + + } + hxpcChargeOrderMapper.updateXhpcChargeOrder(hxpcChargeOrder); + } + + private void rabbimt(String message) { + //发送消息队列 + try{ + // 1、获取到连接 + Connection connection = ConnectionRabbitMQUtil.getConnection(); + // 2、从连接中创建通道,使用通道才能完成消息相关的操作 + Channel channel = connection.createChannel(); + // 3、声明(创建)队列 + channel.queueDeclare(NAME, false, false, false, null); + // 4、消息内容 + channel.basicPublish("", NAME, null, message.getBytes()); + channel.close(); + connection.close(); + }catch (Exception e){ + + } + } + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java index 42af38a6..40254d52 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java @@ -1,6 +1,7 @@ package com.xhpc.order.service.impl; import com.xhpc.common.core.web.domain.AjaxResult; +import com.xhpc.order.domain.XhpcHistoryOrder; import com.xhpc.order.mapper.XhpcHistoryOrderMapper; import com.xhpc.order.service.IXhpcHistoryOrderService; import org.apache.poi.ss.formula.functions.T; @@ -29,4 +30,9 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService { return AjaxResult.success(xhpcHistoryOrderMapper.gethistotyOrderMessage(userId,historyOrderId,type,chargingOrderId)); } + @Override + public void insert(XhpcHistoryOrder xhpcHistoryOrder) { + xhpcHistoryOrderMapper.insert(xhpcHistoryOrder); + } + } 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 47c36964..fc31d028 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml @@ -56,27 +56,27 @@ where user_id = #{userId} and status=0 and del_flag =0 - - - - - - - - - - - - - - - - - - - - - + - insert into xhpc_charge_order @@ -203,11 +197,12 @@ - + update xhpc_charge_order - end_soc = #{chargingStationId}, + end_soc = #{endSoc}, status = #{status}, + remark = #{remark}, end_time = #{endTime}, charging_time = #{chargingTime}, charging_degree = #{chargingDegree}, @@ -236,4 +231,15 @@ order by cor.update_time desc + + + + + \ No newline at end of file diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcRealTimeOrderMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcRealTimeOrderMapper.xml index 74024d9e..25c3291a 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcRealTimeOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcRealTimeOrderMapper.xml @@ -199,6 +199,64 @@ + + insert into xhpc_charge_order_soc + + + charge_order_id, + + + soc, + + + status, + + + create_time, + + + create_by, + + + update_time, + + + update_by, + + + remark + + + + + #{chargeOrderId}, + + + #{soc}, + + + #{status}, + + + #{createTime}, + + + #{createBy}, + + + #{updateTime}, + + + #{updateBy}, + + + #{remark} + + + + +