diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 6f15e2f76..4db3f7cbc 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -425,6 +425,7 @@ public class OrderService { order.setStopReasonMsg(orderBasicInfo.getReason()); order.setStartSOC(orderBasicInfo.getStartSoc()); order.setEndSOC(orderBasicInfo.getEndSoc()); + order.setOrderAmount(String.valueOf(orderBasicInfo.getOrderAmount())); order.setDiscountAmount(String.valueOf(orderBasicInfo.getDiscountAmount())); order.setSettleAmount(String.valueOf(orderBasicInfo.getSettleAmount())); order.setSettlementTime(DateUtils.formatDateTime(orderBasicInfo.getSettlementTime())); diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 347b1cd87..f8f4de68e 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -277,8 +277,7 @@ public class SpringBootTestController { @Qualifier("zhongDianLianPlatformServiceImpl") private ThirdPartyPlatformService platformLogic; - - + @Test public void saveSOCTest() { String transactionCode = "12345"; YKCUtils.saveSOC(transactionCode, "4"); @@ -3925,5 +3924,4 @@ public class SpringBootTestController { // rabbitTemplate.convertAndSend(RabbitConstants.YKC_EXCHANGE_NAME, RabbitConstants.QUEUE_CHARGE_ORDER_DATA, afterSettleOrderDTO); // } } - } diff --git a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java index 6d5c6822a..39657f815 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java +++ b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java @@ -155,6 +155,11 @@ public class CacheConstants { */ public static final String PILE_IS_CHARGING = "pile_is_charging:"; + /** + * 0x17参数配置缓存 + */ + public static final String PARAMETER_CONFIGURATION_BY_TRANSACTIONCODE = "ParameterConfigurationByTransactionCode:"; + /** * 充电桩最后连接时间 */ diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ParameterConfigurationHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ParameterConfigurationHandler.java index 544e6fd92..2d89ebfc8 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ParameterConfigurationHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ParameterConfigurationHandler.java @@ -1,12 +1,15 @@ package com.jsowell.netty.handler.yunkuaichong; +import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.core.domain.ykc.YKCDataProtocol; import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; +import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.util.BytesUtil; import com.jsowell.common.util.YKCUtils; import com.jsowell.netty.factory.YKCOperateFactory; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.service.OrderBasicInfoService; +import com.jsowell.pile.thirdparty.ParameterConfigData; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -14,6 +17,7 @@ import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.util.Objects; +import java.util.concurrent.TimeUnit; /** * 参数配置 Handler @@ -28,6 +32,9 @@ public class ParameterConfigurationHandler extends AbstractYkcHandler { @Autowired private OrderBasicInfoService orderBasicInfoService; + @Autowired + private RedisCache redisCache; + private final String type = YKCUtils.frameType2Str(YKCFrameTypeCode.PARAMETER_CONFIGURATION_CODE.getBytes()); @Override @@ -121,6 +128,27 @@ public class ParameterConfigurationHandler extends AbstractYkcHandler { byte[] pileMinOutputCurrentByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); String pileMinOutputCurrent = String.valueOf(BytesUtil.bytesToIntLittle(pileMinOutputCurrentByteArr) * 0.1 - 400); + // 将解析出的信息存入缓存(过期时间7天) + ParameterConfigData data = ParameterConfigData.builder() + .transactionCode(transactionCode) + .pileSn(pileSn) + .pileConnectorCode(pileConnectorCode) + .bmsMaxVoltage(BMSMaxVoltage) + .bmsMaxCurrent(BMSMaxCurrent) + .bmsSumEnergy(BMSSumEnergy) + .bmsMaxChargingVoltage(BMSMaxChargingVoltage) + .bmsMaxTemperature(BMSMaxTemperature) + .soc(soc) + .bmsRealTimeVoltage(BMSRealTimeVoltage) + .pileMaxOutputVoltage(pileMaxOutputVoltage) + .pileMinOutputVoltage(pileMinOutputVoltage) + .pileMaxOutputCurrent(pileMaxOutputCurrent) + .pileMinOutputCurrent(pileMinOutputCurrent) + + .build(); + String redisKey = CacheConstants.PARAMETER_CONFIGURATION_BY_TRANSACTIONCODE + transactionCode; + redisCache.setCacheObject(redisKey, data, 7, TimeUnit.DAYS); + // 查询该订单下信息,将起始soc传入 OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByTransactionCode(transactionCode); if (Objects.nonNull(orderInfo)) { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java index 6f6e22b5c..f14c18d07 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java @@ -231,6 +231,8 @@ public interface OrderBasicInfoMapper { */ List getUnpaidOrderListOver15Min(@Param("createTime") String createTime); + List getUnpaidOrderList(@Param("startTime") String startTime, @Param("endTime") String endTime); + /** * 根据orderId批量修改订单状态 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 77d2f0e7c..bbf68d85a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2261,9 +2261,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { */ @Override public List getUnpaidOrderListOver15Min() { - Date now = DateUtils.addMinute(new Date(), -15); - String nowString = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, now); - List list = orderBasicInfoMapper.getUnpaidOrderListOver15Min(nowString); + String startString = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, new Date()); + String endString = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.addMinute(new Date(), -15)); + List list = orderBasicInfoMapper.getUnpaidOrderList(startString, endString); return CollectionUtils.isNotEmpty(list) ? list : Lists.newArrayList(); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index ed185e640..fb50aea81 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -1114,6 +1114,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService { equipmentInfo.setManufacturerID(Constants.OPERATORID_LIANLIAN); equipmentInfo.setManufacturerName(Constants.MANUFACTURER_NAME); equipmentInfo.setConstructionTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileBasicInfo.getCreateTime())); + equipmentInfo.setProductionDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileBasicInfo.getCreateTime())); PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn); equipmentInfo.setEquipmentType(Integer.valueOf(modelInfo.getSpeedType())); @@ -1211,6 +1212,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService { connectorInfo.setCurrent(Integer.valueOf(modelInfo.getRatedCurrent())); connectorInfo.setConnectorName(pileConnectorInfo.getPileConnectorCode()); connectorInfo.setOperateStatus(50); // 50-正常使用 + connectorInfo.setOpreateStatus(50); // 50-正常使用 connectorInfo.setNationalStandard(2); // 2-2015 connectorInfo.setAuxPower(3); // 3-兼容12V和24V diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java index 7f2edf0bc..1b021e141 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java @@ -82,6 +82,17 @@ public class ConnectorInfo { @JSONField(name = "OperateStatus") private Integer operateStatus; + /** + * 运营状态 + * 0-未知 + * 1-建设中 + * 5-关闭下线 + * 6-维护中 + * 50-正常使用 + */ + @JSONField(name = "OpreateStatus") + private Integer opreateStatus; + /** * 国家标准 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java index f1cc24ad5..35ae8fffa 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java @@ -53,7 +53,8 @@ public class EquipmentInfo { * 设备生产日期 N * YYYY-MM-DD */ - // private String ProductionDate; + @JSONField(name = "ProductionDate") + private String productionDate; /** * 建设时间 Y diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ParameterConfigData.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ParameterConfigData.java new file mode 100644 index 000000000..0d2c069d2 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ParameterConfigData.java @@ -0,0 +1,88 @@ +package com.jsowell.pile.thirdparty; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 0x17参数配置对象 + * + * @author Lemon + * @Date 2024/11/28 14:43:28 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ParameterConfigData { + /** + * 交易流水号 + */ + private String transactionCode; + + /** + * 桩编码 + */ + private String pileSn; + + /** + * 枪号 + */ + private String pileConnectorCode; + + /** + * BMS 单体动力蓄电池最高允许充电电压 0.01 V/位, 0 V 偏移量; 数据范围: 0~24 V + */ + private String bmsMaxVoltage; + + /** + * BMS 最高允许充电电流 0.1 A/位, -400A 偏移量 + */ + private String bmsMaxCurrent; + + /** + * BMS 动力蓄电池标称总能量 0.1 kWh/位, 0 kWh 偏移量; 数据范围: 0~1000 kWh + */ + private String bmsSumEnergy; + + /** + * BMS 最高允许充电总电压 0.1 V/位, 0 V 偏移量 + */ + private String bmsMaxChargingVoltage; + + /** + * BMS 最高允许温度 1ºC/位, -50 ºC 偏移量;数据范 围: -50 ºC ~+200 ºC + */ + private String bmsMaxTemperature; + + /** + * BMS 整车动力 蓄电池荷电状态(soc) 0.1%/位, 0%偏移量;数据范围: 0~100% + */ + private String soc; + + /** + * BMS 整车动力蓄电池当前电池电压 整车动力蓄电池总电压 + */ + private String bmsRealTimeVoltage; + + /** + * 电桩最高输出电压 0.1 V /位, 0 V 偏移量 + */ + private String pileMaxOutputVoltage; + + /** + * 电桩最低输出电压 0.1 V /位, 0 V 偏移量 + */ + private String pileMinOutputVoltage; + + /** + * 电桩最大输出电流 0.1 A/位, -400 A 偏移量 + */ + private String pileMaxOutputCurrent; + + /** + * 电桩最小输出电流 0.1 A/位, -400 A 偏移量 + */ + private String pileMinOutputCurrent; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java index a3af8d280..2169a264c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java @@ -66,6 +66,7 @@ public class OrderDetailInfoVO { private String createTime; // 订单创建时间 private String startSOC; // 开始SOC private String endSOC; // 结束SOC + private String orderAmount; // 订单消费金额 private String discountAmount; // 订单优惠金额 private String settleAmount;// 结算金额 private String settlementTime; // 结算时间 diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index e598b48fb..2e7defa3d 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -2464,7 +2464,18 @@ where del_flag = '0' and order_status = '0' and pay_status = '0' - and create_time #{createTime,jdbcType=VARCHAR} + + and create_time between date_sub(#{createTime,jdbcType=VARCHAR}, interval 15 minute) and #{createTime,jdbcType=VARCHAR} + + +