diff --git a/jsowell-admin/src/main/java/com/jsowell/service/CameraService.java b/jsowell-admin/src/main/java/com/jsowell/service/CameraService.java index 8c7f6a402..6fce2d1d0 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/CameraService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/CameraService.java @@ -15,6 +15,7 @@ import com.jsowell.netty.server.mqtt.BootNettyMqttChannelInboundHandler; import com.jsowell.pile.domain.OrderPileOccupy; import com.jsowell.pile.domain.PileCameraInfo; import com.jsowell.pile.dto.GenerateOccupyOrderDTO; +import com.jsowell.pile.dto.QueryOccupyOrderDTO; import com.jsowell.pile.dto.camera.Camera2GroundLockCommand; import com.jsowell.pile.dto.camera.CameraHeartBeatDTO; import com.jsowell.pile.dto.camera.CameraIdentifyResultsDTO; @@ -75,19 +76,49 @@ public class CameraService { if (parking_state == 1) { // 入场 String parkingState = "ENTRY"; - vehicleEntry(jsonObject, parkingState); + String result = vehicleEntry(jsonObject, parkingState); + logger.info("车辆入场处理 result:{}", result); } if (parking_state == 2) { // 在场 } if (parking_state == 4) { // 出场 + vehicleLeave(jsonObject); } // saveInfo2DataBase(jsonObject); } + + /** + * 车辆离场 + * @param jsonObject + */ + private void vehicleLeave(JSONObject jsonObject) { + // 将信息存数据库 + Map resultMap = saveInfo2DataBase(jsonObject); + if (resultMap == null) { + logger.error("车辆离场,将信息存入数据库 error, 源数据:{}", jsonObject); + return; + } + String plateNumber = resultMap.get("plateNumber"); + // 查出该车牌对应的挂起状态的占桩订单 + QueryOccupyOrderDTO dto = QueryOccupyOrderDTO.builder() + .plateNumber(plateNumber) + .orderStatus(OccupyOrderStatusEnum.ORDER_HANG_UP.getCode()) + .build(); + List orderPileOccupyList = orderPileOccupyService.queryOccupyOrderList(dto); + if (CollectionUtils.isEmpty(orderPileOccupyList)) { + return; + } + OrderPileOccupy occupy = orderPileOccupyList.get(0); + + // 停止占桩订单 + orderPileOccupyService.stopOccupyPileOrder(occupy); + } + /** * 保存心跳到Redis * @param dto @@ -122,7 +153,7 @@ public class CameraService { // 先判断该车牌是否有挂起未支付的占桩订单 OrderPileOccupy occupy = OrderPileOccupy.builder() - .status("2") // 2-订单挂起 + .status(OccupyOrderStatusEnum.ORDER_HANG_UP.getCode()) // 2-订单挂起 .plateNumber(plateNumber) .build(); List occupyList = orderPileOccupyService.getOrderPileOccupyList(occupy); @@ -149,8 +180,9 @@ public class CameraService { } }else { // 如果没有小程序账号,再根据此车牌是否有挂起的占桩订单 - OrderPileOccupy orderPileOccupy = new OrderPileOccupy(); - orderPileOccupy.setPlateNumber(plateNumber); + OrderPileOccupy orderPileOccupy = OrderPileOccupy.builder() + .plateNumber(plateNumber) + .build(); List orderPileOccupyList = orderPileOccupyService.getOrderPileOccupyList(orderPileOccupy); // TODO 如果有已挂起的占桩订单,则不予降锁,将“已存在有未支付的占桩订单”信息返回 if (CollectionUtils.isNotEmpty(orderPileOccupyList)) { diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/hainan/HaiNanPlatformController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/hainan/HaiNanPlatformController.java index b3b5e3d8e..00cf9f4a2 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/hainan/HaiNanPlatformController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/hainan/HaiNanPlatformController.java @@ -85,7 +85,7 @@ public class HaiNanPlatformController extends BaseController { // 转换成相应对象 QueryStationInfoDTO queryStationInfoDTO = JSONObject.parseObject(dataStr, QueryStationInfoDTO.class); queryStationInfoDTO.setOperatorId(dto.getOperatorID()); - queryStationInfoDTO.setThirdPlatformType(ThirdPlatformTypeEnum.HAI_NAN.getCode()); + queryStationInfoDTO.setThirdPlatformType(ThirdPlatformTypeEnum.HAI_NAN_1.getCode()); Map map = platformLogic.queryStationsInfo(queryStationInfoDTO); logger.info("海南平台查询充电站信息 result:{}", JSONObject.toJSONString(map)); return CommonResult.success(0, "查询充电站信息成功!", map.get("Data"), map.get("Sig")); diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPartyOperatorIdEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPartyOperatorIdEnum.java index 9c2e9bdb1..7c4799685 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPartyOperatorIdEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPartyOperatorIdEnum.java @@ -15,12 +15,13 @@ public enum ThirdPartyOperatorIdEnum { YONG_CHENG_BO_CHE("4", "330205020"), NING_XIA_JIAO_TOU("5", "MA771QENX"), XIN_DIAN_TU("6", "MA25CNM38"), - HAI_NAN("7", "578725200"), - HUA_WEI("8", ""); + HAI_NAN_1("7", "578725200"), + HAI_NAN_2("8", "MAA9A0PP1"), + HUA_WEI("9", ""), ; private String type; - private String OperatorId; + private String operatorId; public String getType() { return type; @@ -31,16 +32,16 @@ public enum ThirdPartyOperatorIdEnum { } public String getOperatorId() { - return OperatorId; + return operatorId; } public void setOperatorId(String operatorId) { - OperatorId = operatorId; + this.operatorId = operatorId; } ThirdPartyOperatorIdEnum(String type, String operatorId) { this.type = type; - OperatorId = operatorId; + this.operatorId = operatorId; } /** diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPlatformTypeEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPlatformTypeEnum.java index 42c6c4b1c..d0ed83380 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPlatformTypeEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPlatformTypeEnum.java @@ -15,8 +15,9 @@ public enum ThirdPlatformTypeEnum { YONG_CHENG_BO_CHE("4", "甬城泊车平台"), NING_XIA_JIAO_TOU("5", "宁夏交投"), XIN_DIAN_TU("6", "新电途平台"), - HAI_NAN("7", "海南平台"), - HUA_WEI("8", "华为平台"), + HAI_NAN_1("7", "海南一张网(监管平台)"), + HAI_NAN_2("8", "海南一张网(充电平台)"), + HUA_WEI("9", "华为平台"), ; private String code; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/GenerateOccupyOrderDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/GenerateOccupyOrderDTO.java index 0a3f082de..e094c460b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/GenerateOccupyOrderDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/GenerateOccupyOrderDTO.java @@ -38,6 +38,11 @@ public class GenerateOccupyOrderDTO { */ private String payStatus; + /** + * 开始时间 + */ + private String startTime; + /** * 车牌号 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOccupyOrderDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOccupyOrderDTO.java index 9ffcf74b7..6be236122 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOccupyOrderDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOccupyOrderDTO.java @@ -19,4 +19,10 @@ public class QueryOccupyOrderDTO { // 充电桩枪口编号 private String pileConnectorCode; + + // 车牌号码 + private String plateNumber; + + // 订单状态 + private String orderStatus; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderPileOccupyService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderPileOccupyService.java index 6f67e72d9..6520c2aa1 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderPileOccupyService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderPileOccupyService.java @@ -65,6 +65,8 @@ public interface OrderPileOccupyService{ */ void stopOccupyPileOrder(String pileSn, String connectorCode); + void stopOccupyPileOrder(OrderPileOccupy orderPileOccupy); + /** * 通过memberid查询挂起状态订单 * @param memberId diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPileOccupyServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPileOccupyServiceImpl.java index df30dbd13..56a59a852 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPileOccupyServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPileOccupyServiceImpl.java @@ -183,6 +183,7 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService { String orderStatus = dto.getOrderStatus(); String payStatus = dto.getPayStatus(); String plateNumber = dto.getPlateNumber(); + String startTime = dto.getStartTime(); if (StringUtils.isBlank(orderStatus)) { orderStatus = OccupyOrderStatusEnum.DRAFT_ORDER.getCode(); // 草稿单 @@ -207,6 +208,9 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService { if (StringUtils.isNotBlank(plateNumber)) { orderPileOccupy.setPlateNumber(plateNumber); // 车牌号 } + if (StringUtils.isNotBlank(startTime)) { + orderPileOccupy.setStartTime(DateUtils.getNowDate()); // 开始时间 + } orderPileOccupy.setPileSn(pileSn); PileInfoVO pileInfoVO = pileBasicInfoService.selectPileInfoBySn(pileSn); if (pileInfoVO != null) { @@ -239,6 +243,12 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService { if (orderPileOccupy == null) { return; } + stopOccupyPileOrder(orderPileOccupy); + } + + + @Override + public void stopOccupyPileOrder(OrderPileOccupy orderPileOccupy) { // 设置结束时间 orderPileOccupy.setEndTime(DateUtils.getNowDate()); diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderPileOccupyMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderPileOccupyMapper.xml index 48d405060..bc8d77532 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderPileOccupyMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderPileOccupyMapper.xml @@ -852,6 +852,13 @@ and pile_sn = #{dto.pileSn,jdbcType=VARCHAR} + + and plate_number = #{dto.plateNumber,jdbcType=VARCHAR} + + + and status = #{dto.orderStatus,jdbcType=VARCHAR} + + order by create_time DESC