diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java index 5a6d229ae..e0969f4ce 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java @@ -766,6 +766,24 @@ public class TempController extends BaseController { return response; } + /** + * 调试结算订单逻辑 + * http://localhost:8080/temp/testSettleOrderLogic + */ + @PostMapping("/testSettleOrderLogicV2") + public RestApiResponse testSettleOrderLogicV2(@RequestBody QueryOrderDTO dto) { + RestApiResponse response; + try { + // 调试结算订单逻辑 + tempService.testSettleOrderLogicV2(dto.getOrderCode()); + response = new RestApiResponse<>(); + } catch (Exception e) { + logger.error("调试结算订单逻辑V2error,", e); + response = new RestApiResponse<>(); + } + return response; + } + /** * 重试订单退款接口/重试退款按钮 (批量) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index f1f1c1200..9d1417a28 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -30,7 +30,6 @@ import com.jsowell.pile.dto.ApplyRefundDTO; import com.jsowell.pile.dto.QueryOrderDTO; import com.jsowell.pile.dto.SettleOrderReportDTO; import com.jsowell.pile.mapper.OrderBasicInfoMapper; -import com.jsowell.pile.mapper.PileMsgRecordMapper; import com.jsowell.pile.service.*; import com.jsowell.pile.service.programlogic.AbstractProgramLogic; import com.jsowell.pile.service.programlogic.ProgramLogicFactory; @@ -47,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.Set; @@ -102,7 +102,7 @@ public class TempService { private MemberAdapayRecordService memberAdapayRecordService; @Autowired - private PileMsgRecordMapper pileMsgRecordMapper; + private PileMsgRecordService pileMsgRecordService; @Autowired private OrderDetailService orderDetailService; @@ -126,7 +126,7 @@ public class TempService { // 根据充电桩编号,查询报文 for (OrderListVO orderVO : orderListVOS) { String pileSn = orderVO.getPileSn(); - List pileFeedList = pileMsgRecordMapper.getPileFeedList(pileSn); + // List pileFeedList = pileMsgRecordMapper.getPileFeedList(pileSn); } // @@ -892,15 +892,25 @@ public class TempService { orderCode, memberId, discountAmount, electricityAmountDiscount, serviceAmountDiscount, totalConsumeAmount); } + public void testSettleOrderLogicV2(String orderCode) { + // 查询订单主表 + OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + + LocalDateTime localDateTime = DateUtils.date2LocalDateTime(orderBasicInfo.getSettlementTime()); + // 开始时间为localDateTime减30秒 + LocalDateTime startTime = localDateTime.minusSeconds(30); + // 结束时间为localDateTime加30秒 + LocalDateTime endTime = localDateTime.plusSeconds(30); + // 查询这笔订单的交易记录原始数据 + List pileFeedListV2 = pileMsgRecordService.getPileFeedListV2(orderBasicInfo.getPileSn(), "0x3B", startTime, endTime); + logger.info("testSettleOrderLogicV2, orderCode:{}, pileSn:{}, startTime:{}, endTime:{}, pileFeedListV2:{}", + orderCode, orderBasicInfo.getPileSn(), startTime, endTime, JSON.toJSONString(pileFeedListV2)); + + } + public void testSettleOrderLogic(TransactionRecordsData data, OrderBasicInfo orderBasicInfo) { AbstractProgramLogic programLogic = ProgramLogicFactory.getProgramLogic("1"); - // 获取更新数据后的orderBasicInfo对象 - // programLogic.returnUpdateOrderBasicInfo(orderBasicInfo, data); - - // 获取更新数据后的orderDetail对象/更新订单详情 查询订单详情 修改订单数据 - // OrderDetail orderDetail = programLogic.returnUpdateOrderDetail(orderBasicInfo, data); - // 查询订单详情 OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderBasicInfo.getOrderCode()); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileMsgRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileMsgRecordService.java index c1c12e15a..465122a93 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileMsgRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileMsgRecordService.java @@ -4,6 +4,7 @@ import com.jsowell.common.core.page.PageResponse; import com.jsowell.pile.domain.PileMsgRecord; import com.jsowell.pile.dto.QueryPileDTO; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -29,4 +30,6 @@ public interface PileMsgRecordService { String generateDescription(PileMsgRecord pileMsgRecord); List getPileFeedListV2(String pileSn, String frameType, Date startTime, Date endTime); + + List getPileFeedListV2(String pileSn, String frameType, LocalDateTime startTime, LocalDateTime endTime); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMsgRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMsgRecordServiceImpl.java index b654ffb78..33889375e 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMsgRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMsgRecordServiceImpl.java @@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo; import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.util.BytesUtil; +import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.YKCUtils; import com.jsowell.pile.domain.OrderBasicInfo; @@ -18,6 +19,7 @@ import com.jsowell.pile.vo.web.PileCommunicationLogVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -126,6 +128,11 @@ public class PileMsgRecordServiceImpl implements PileMsgRecordService { return pileMsgRecordMapper.getPileFeedListV2(pileSn, frameType, createTime, updateTime); } + @Override + public List getPileFeedListV2(String pileSn, String frameType, LocalDateTime startTime, LocalDateTime endTime) { + return this.getPileFeedListV2(pileSn, frameType, DateUtils.localDateTime2Date(startTime), DateUtils.localDateTime2Date(endTime)); + } + /** * 解析登录报文 * @param jsonMsg diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java index 03e1f47d2..7b4cd965d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java @@ -619,7 +619,10 @@ public abstract class AbstractProgramLogic implements InitializingBean { orderBasicInfo.setVirtualAmount(virtualAmount); // 虚拟金额 orderBasicInfo.setSettleAmount(dataOrderAmount.subtract(virtualAmount)); // 结算金额 = 消费金额 - 虚拟金额 orderBasicInfo.setReason(data.getStopReasonMsg()); // 充电停止原因 - orderBasicInfo.setSettlementTime(DateUtils.getNowDate()); // 结算时间 + if (Objects.isNull(orderBasicInfo.getSettlementTime())) { + // 如果结算时间为空,设置当前时间为结算时间 + orderBasicInfo.setSettlementTime(DateUtils.getNowDate()); // 结算时间 + } updateSOC(orderBasicInfo); /*