update 查询未开发票站点列表

This commit is contained in:
2023-05-18 17:24:13 +08:00
parent d0dc2e64c2
commit a3f096ab80
5 changed files with 85 additions and 10 deletions

View File

@@ -17,6 +17,7 @@ import com.jsowell.pile.dto.QueryOrderDTO;
import com.jsowell.pile.dto.SettleOrderDTO; import com.jsowell.pile.dto.SettleOrderDTO;
import com.jsowell.pile.dto.StopChargingDTO; import com.jsowell.pile.dto.StopChargingDTO;
import com.jsowell.pile.dto.UniAppQueryOrderDTO; import com.jsowell.pile.dto.UniAppQueryOrderDTO;
import com.jsowell.pile.vo.base.StationInfoVO;
import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.OrderVO;
import com.jsowell.pile.vo.uniapp.UniAppOrderVO; import com.jsowell.pile.vo.uniapp.UniAppOrderVO;
import com.jsowell.service.OrderService; import com.jsowell.service.OrderService;
@@ -269,6 +270,35 @@ public class OrderController extends BaseController {
return response; return response;
} }
/**
* 查询未开发票的站点list
* http://localhost:8080/uniapp/order/queryUninvoicedStationList
* @param request
* @param dto
* @return
*/
@PostMapping("/queryUninvoicedStationList")
public RestApiResponse<?> queryUninvoicedStationList(HttpServletRequest request, @RequestBody QueryOrderDTO dto) {
logger.info("查询未开发票的站点list param:{}", JSONObject.toJSONString(dto));
RestApiResponse<?> response;
try {
String memberId = getMemberIdByAuthorization(request);
if (StringUtils.isBlank(memberId)) {
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
}
dto.setMemberId(memberId);
List<StationInfoVO> list = orderService.queryUninvoicedStationList(dto);
response = new RestApiResponse<>(ImmutableMap.of("list", list));
} catch (BusinessException e) {
logger.error("查询未开发票的站点list warn", e);
response = new RestApiResponse<>(e.getCode(), e.getMessage());
} catch (Exception e){
logger.error("查询未开发票的站点list error", e);
response = new RestApiResponse<>("00300004", "查询未开发票的站点list异常");
}
return response;
}
/** /**
* 申请开票接口 * 申请开票接口
* http://localhost:8080/uniapp/order/applyOrderInvoice * http://localhost:8080/uniapp/order/applyOrderInvoice

View File

@@ -66,6 +66,7 @@ import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.vo.base.OrderAmountDetailVO; import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.base.StationInfoVO;
import com.jsowell.pile.vo.uniapp.InvoiceRecordVO; import com.jsowell.pile.vo.uniapp.InvoiceRecordVO;
import com.jsowell.pile.vo.uniapp.MemberVO; import com.jsowell.pile.vo.uniapp.MemberVO;
import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.OrderVO;
@@ -205,6 +206,7 @@ public class OrderService {
/** /**
* 白名单支付订单逻辑 * 白名单支付订单逻辑
*
* @param dto * @param dto
*/ */
private void whiteListPayOrder(PayOrderDTO dto) { private void whiteListPayOrder(PayOrderDTO dto) {
@@ -221,6 +223,7 @@ public class OrderService {
/** /**
* 微信支付订单逻辑 获取支付参数 * 微信支付订单逻辑 获取支付参数
*
* @param dto * @param dto
* @return * @return
* @throws Exception * @throws Exception
@@ -261,6 +264,7 @@ public class OrderService {
/** /**
* 余额支付订单逻辑 * 余额支付订单逻辑
*
* @param dto * @param dto
*/ */
private void balancePayOrder(PayOrderDTO dto) { private void balancePayOrder(PayOrderDTO dto) {
@@ -685,6 +689,7 @@ public class OrderService {
/** /**
* 查询订单详情信息 * 查询订单详情信息
*
* @param orderCode 订单编号 * @param orderCode 订单编号
* @return * @return
*/ */
@@ -773,7 +778,7 @@ public class OrderService {
// 使用余额支付 // 使用余额支付
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue()); payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue());
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_BALANCE.getLabel()); payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_BALANCE.getLabel());
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())){ } else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())) {
// 使用微信支付 // 使用微信支付
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue()); payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue());
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel()); payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel());
@@ -783,7 +788,7 @@ public class OrderService {
payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId());
} }
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())){ } else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())) {
// 使用白名单支付 // 使用白名单支付
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue()); payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue());
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getLabel()); payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getLabel());
@@ -826,6 +831,7 @@ public class OrderService {
/** /**
* 获取小程序订单详情 * 获取小程序订单详情
*
* @param orderCode * @param orderCode
* @return * @return
*/ */
@@ -901,7 +907,7 @@ public class OrderService {
// monitorDataList是按照时间倒序的chargingDataList需要按照时间正序 // monitorDataList是按照时间倒序的chargingDataList需要按照时间正序
Collections.reverse(chargingDataList); Collections.reverse(chargingDataList);
vo.setChargingDataList(chargingDataList); vo.setChargingDataList(chargingDataList);
} }
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode); OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
if (orderDetail != null) { if (orderDetail != null) {
@@ -924,6 +930,7 @@ public class OrderService {
/** /**
* 根据订单号查询充电桩启动状态 * 根据订单号查询充电桩启动状态
*
* @param orderCode * @param orderCode
* @return * @return
*/ */
@@ -943,6 +950,7 @@ public class OrderService {
/** /**
* 人工结算订单 * 人工结算订单
*
* @param dto * @param dto
*/ */
public boolean manualSettlementOrder(ManualSettlementDTO dto) { public boolean manualSettlementOrder(ManualSettlementDTO dto) {
@@ -996,6 +1004,7 @@ public class OrderService {
/** /**
* 当前登录会员 获取支付方式 * 当前登录会员 获取支付方式
*
* @param dto * @param dto
*/ */
public List<PayModeVO> getPayMode(GetPayModeDTO dto) { public List<PayModeVO> getPayMode(GetPayModeDTO dto) {
@@ -1031,11 +1040,9 @@ public class OrderService {
public List<OrderVO> queryUninvoicedOrderList(QueryOrderDTO dto) { public List<OrderVO> queryUninvoicedOrderList(QueryOrderDTO dto) {
int i = 15; int i = 15;
// 查询最近15天完成的订单 // 查询最近15天完成的订单
LocalDateTime dateTime = LocalDateTime.now().plusDays(-i); LocalDateTime dateTime = LocalDateTime.now().plusDays(-i);
List<OrderVO> orderList = orderBasicInfoService.getListByMemberIdAndOrderStatus(dto.getMemberId(), Lists.newArrayList("6"), dateTime, dto.getStationId()); List<OrderVO> orderList = orderBasicInfoService.getListByMemberIdAndOrderStatus(dto.getMemberId(), Lists.newArrayList("6"), dateTime, dto.getStationId());
// 过滤掉订单金额为0的 // 过滤掉订单金额为0的
orderList = orderList.stream() orderList = orderList.stream()
.filter(x -> x.getOrderAmount().compareTo(BigDecimal.ZERO) > 0) .filter(x -> x.getOrderAmount().compareTo(BigDecimal.ZERO) > 0)
@@ -1043,7 +1050,6 @@ public class OrderService {
if (CollectionUtils.isEmpty(orderList)) { if (CollectionUtils.isEmpty(orderList)) {
return orderList; return orderList;
} }
// 查询最近60天申请开票记录 // 查询最近60天申请开票记录
QueryInvoiceRecordDTO build = QueryInvoiceRecordDTO.builder() QueryInvoiceRecordDTO build = QueryInvoiceRecordDTO.builder()
.memberId(dto.getMemberId()) .memberId(dto.getMemberId())
@@ -1053,22 +1059,37 @@ public class OrderService {
if (CollectionUtils.isEmpty(orderInvoiceRecords)) { if (CollectionUtils.isEmpty(orderInvoiceRecords)) {
return orderList; return orderList;
} }
// 排除掉已经申请过的订单 // 排除掉已经申请过的订单
List<String> orderCodeList = orderInvoiceRecords.stream() // 转化为 Stream List<String> orderCodeList = orderInvoiceRecords.stream() // 转化为 Stream
.map(OrderInvoiceRecord::getOrderCodes) // 获取 OrderInvoiceRecord 中的 orderCodes 字符串 .map(OrderInvoiceRecord::getOrderCodes) // 获取 OrderInvoiceRecord 中的 orderCodes 字符串
.flatMap(str -> Arrays.stream(str.split(","))) // 分隔逗号并转化为 Stream .flatMap(str -> Arrays.stream(str.split(","))) // 分隔逗号并转化为 Stream
.collect(Collectors.toList()); // 收集为 List<String> .collect(Collectors.toList()); // 收集为 List<String>
orderList = orderList.stream() orderList = orderList.stream()
.filter(x -> !orderCodeList.contains(x.getOrderCode())) .filter(x -> !orderCodeList.contains(x.getOrderCode()))
.collect(Collectors.toList()); .collect(Collectors.toList());
return orderList; return orderList;
} }
public List<StationInfoVO> queryUninvoicedStationList(QueryOrderDTO dto) {
dto.setStationId(null);
List<OrderVO> orderVOS = queryUninvoicedOrderList(dto);
if (CollectionUtils.isEmpty(orderVOS)) {
return Lists.newArrayList();
}
// 根据站点分组
List<StationInfoVO> stationInfoVOS = orderVOS.stream()
.map(
x -> StationInfoVO.builder()
.stationId(x.getStationId())
.stationName(x.getStationName())
.build()
).distinct().collect(Collectors.toList());
return stationInfoVOS;
}
/** /**
* 申请开票 * 申请开票
*
* @param dto * @param dto
*/ */
public void applyOrderInvoice(ApplyOrderInvoiceDTO dto) { public void applyOrderInvoice(ApplyOrderInvoiceDTO dto) {
@@ -1146,4 +1167,5 @@ public class OrderService {
.list(volist) .list(volist)
.build(); .build();
} }
} }

View File

@@ -4,6 +4,8 @@ import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import java.util.List; import java.util.List;
@@ -89,4 +91,20 @@ public class StationInfoVO {
* 纬度 * 纬度
*/ */
private String stationLat; private String stationLat;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
StationInfoVO that = (StationInfoVO) o;
return new EqualsBuilder().append(stationId, that.stationId).append(stationName, that.stationName).isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder(17, 37).append(stationId).append(stationName).toHashCode();
}
} }

View File

@@ -32,6 +32,11 @@ public class OrderVO {
*/ */
private String pileConnectorCode; private String pileConnectorCode;
/**
* 站点id
*/
private String stationId;
/** /**
* 站点名称 * 站点名称
*/ */

View File

@@ -726,7 +726,7 @@
t1.order_code as orderCode, t1.order_code as orderCode,
t1.order_status as orderStatus, t1.order_status as orderStatus,
t1.reason, t1.reason,
t1.station_id, t1.station_id as stationId,
t3.station_name as stationName, t3.station_name as stationName,
t1.pile_sn as pileSn, t1.pile_sn as pileSn,
t1.connector_code as connectorCode, t1.connector_code as connectorCode,