From 7cf1eb27ecbd23ddc1d0e8080c9637aa6f2a2bf9 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 25 六月 2025 08:45:38 +0800
Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java | 121 ++++++++++++++++++++++++++--------------
1 files changed, 79 insertions(+), 42 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
index 6ce5163..09b19fc 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -37,6 +37,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -94,7 +95,6 @@
* @return
*/
@Override
- @GlobalTransactional(rollbackFor = Exception.class)
public AjaxResult addOrderInvoice(AddOrderInvoice addOrderInvoice) {
Long userId = tokenService.getLoginUserApplet().getUserId();
String orders = addOrderInvoice.getOrders();
@@ -117,13 +117,18 @@
return AjaxResult.error("不能重复申请开票,请刷新数据后重试");
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
- String code = Math.random() * 1000 + sdf.format(new Date());
+ String code = Double.valueOf(Math.random() * 1000).intValue() + sdf.format(new Date());
+ //获取开票类型
+ TInvoiceType invoiceType = invoiceTypeClient.getInvoiceType(addOrderInvoice.getInvoiceTypeId()).getData();
+ addOrderInvoice.setInvoicingCompany(invoiceType.getInvoicingCompany());
+ addOrderInvoice.setInvoiceType(invoiceType.getName());
+ addOrderInvoice.setInvoiceMaterial(2);
+ addOrderInvoice.setInvoicingMethod(invoiceType.getInvoicingMethod());
addOrderInvoice.setAppUserId(userId);
addOrderInvoice.setCode(code);
addOrderInvoice.setStatus(1);
+ addOrderInvoice.setCreateTime(LocalDateTime.now());
this.save(addOrderInvoice);
- //获取开票类型
- TInvoiceType invoiceType = invoiceTypeClient.getInvoiceType(addOrderInvoice.getInvoiceTypeId()).getData();
for (Long orderId : orderIds) {
List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>()
.eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId));
@@ -140,7 +145,8 @@
orderInvoiceDetail.setAddedServiceTariff(invoiceType.getAddedServiceTariff());
orderInvoiceDetail.setElectrovalence(electrovalence);
orderInvoiceDetail.setServiceCharge(serviceCharge);
- orderInvoiceDetail.setAddedService(serviceCharge.multiply(invoiceType.getAddedServiceTariff().divide(new BigDecimal(100))));
+ orderInvoiceDetail.setAddedService(serviceCharge.multiply(null == invoiceType.getAddedServiceTariff()
+ ? new BigDecimal(1) : invoiceType.getAddedServiceTariff().divide(new BigDecimal(100))));
orderInvoiceDetailService.save(orderInvoiceDetail);
}
return AjaxResult.success();
@@ -155,9 +161,12 @@
@Override
public List<OrderInvoiceList> getMyOrderInvoiceList(GetOrderInvoiceList query) {
Long userId = tokenService.getLoginUserApplet().getUserId();
- List<TOrderInvoice> list = this.list(new LambdaQueryWrapper<TOrderInvoice>().eq(TOrderInvoice::getAppUserId, userId)
- .eq(TOrderInvoice::getStatus, query.getStatus()).orderByDesc(TOrderInvoice::getCreateTime)
- .last(" limit " + query.getPageCurr() + ", " + query.getPageSize()));
+ Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize();
+ LambdaQueryWrapper<TOrderInvoice> wrapper = new LambdaQueryWrapper<TOrderInvoice>().eq(TOrderInvoice::getAppUserId, userId);
+ if(query.getStatus() != 1){
+ wrapper.eq(TOrderInvoice::getStatus, query.getStatus());
+ }
+ List<TOrderInvoice> list = this.list(wrapper.orderByDesc(TOrderInvoice::getCreateTime).last(" limit " + pageCurr + ", " + query.getPageSize()));
List<OrderInvoiceList> pageList = new ArrayList<>();
for (TOrderInvoice tOrderInvoice : list) {
OrderInvoiceList orderInvoiceList = new OrderInvoiceList();
@@ -208,7 +217,9 @@
myChargingOrderList.setEndMode(tChargingOrder.getEndMode());
BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
myChargingOrderList.setPayMoney(payMoney);
- myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss")));
+ myChargingOrderList.setElectricCharge(tChargingOrder.getElectrovalence());
+ myChargingOrderList.setServiceCharge(tChargingOrder.getServiceCharge());
chargingOrder.add(myChargingOrderList);
}
myOrderInvoiceInfo.setChargingOrder(chargingOrder);
@@ -238,6 +249,7 @@
myShoppingOrderList.setUnitPrice(unitPrice);
myShoppingOrderList.setNumber(tShoppingOrder.getPurchaseQuantity());
myShoppingOrderList.setPaymentAmount(tShoppingOrder.getPaymentAmount());
+ myShoppingOrderList.setCreateTime(tShoppingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss")));
shoppingOrder.add(myShoppingOrderList);
}
myOrderInvoiceInfo.setShoppingOrder(shoppingOrder);
@@ -247,37 +259,51 @@
@Override
public PageInfo<TOrderInvoiceVO> pageList(TOrderInvoiceQuery query) {
+ List<TAppUser> tAppUsers = new ArrayList<>();
// 查询申请用户
- List<TAppUser> userList = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
- if(CollectionUtils.isEmpty(userList)){
- return new PageInfo<>();
+ if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
+ tAppUsers = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
+ if(CollectionUtils.isEmpty(tAppUsers)){
+ return new PageInfo<>();
+ }
}
- query.setUserIds(userList.stream().map(TAppUser::getId).collect(Collectors.toList()));
+ query.setUserIds(tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()));
PageInfo<TOrderInvoiceVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
List<TOrderInvoiceVO> list = this.baseMapper.pageList(query,pageInfo);
for (TOrderInvoiceVO tOrderInvoiceVO : list) {
- List<Long> collect = orderInvoiceDetailService.lambdaQuery().eq(TOrderInvoiceDetail::getOrderInvoiceId, tOrderInvoiceVO.getId())
- .eq(TOrderInvoiceDetail::getOrderType, 1).list().stream()
+ tOrderInvoiceVO.setUid(tOrderInvoiceVO.getId().toString());
+ List<Long> collect = orderInvoiceDetailService.lambdaQuery().eq(TOrderInvoiceDetail::getOrderInvoiceId, tOrderInvoiceVO.getId()).list().stream()
.map(TOrderInvoiceDetail::getOrderId).collect(Collectors.toList());
// 将其全部转化为String
tOrderInvoiceVO.setIds(collect.stream().map(String::valueOf).collect(Collectors.toList()));
+ TAppUser appUser = appUserClient.getUserById(tOrderInvoiceVO.getAppUserId()).getData();
+ if (appUser!=null){
+ tOrderInvoiceVO.setUserPhone(appUser.getPhone());
+ }
}
// 查询这个开票的订单ids
- List<Long> ids = list.stream().map(TOrderInvoiceVO::getId).collect(Collectors.toList());
+ if (!list.isEmpty()){
+ List<Long> ids = list.stream().map(TOrderInvoiceVO::getId).collect(Collectors.toList());
- List<TOrderInvoiceDetail> orderInvoiceDetailList = orderInvoiceDetailService.list(new LambdaQueryWrapper<TOrderInvoiceDetail>()
- .in(TOrderInvoiceDetail::getOrderInvoiceId, ids));
+ List<TOrderInvoiceDetail> orderInvoiceDetailList = orderInvoiceDetailService.list(new LambdaQueryWrapper<TOrderInvoiceDetail>()
+ .in(TOrderInvoiceDetail::getOrderInvoiceId, ids));
- list.forEach(e->{
- e.setServiceTariff(orderInvoiceDetailList.get(0).getServiceTariff());
- e.setElectricityTariff(orderInvoiceDetailList.get(0).getElectricityTariff());
- e.setAddedServiceTariff(orderInvoiceDetailList.get(0).getAddedServiceTariff());
- e.setAddedService(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get());
- e.setElectrovalence(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get());
- e.setServiceCharge(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get());
- e.setUserPhone(userList.stream().filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
- });
+ List<TAppUser> finalTAppUsers = tAppUsers;
+ list.forEach(e->{
+ if (e.getOrderType()!=null&&e.getOrderType()==1){
+ e.setServiceTariff(orderInvoiceDetailList.get(0).getServiceTariff());
+ }else{
+ e.setServiceTariff(new BigDecimal("0"));
+ }
+ e.setElectricityTariff(orderInvoiceDetailList.get(0).getElectricityTariff());
+ e.setAddedServiceTariff(orderInvoiceDetailList.get(0).getAddedServiceTariff());
+ e.setAddedService(orderInvoiceDetailList.stream().filter(t->t.getOrderInvoiceId().equals(e.getId()) &&t.getAddedService()!=null).map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get());
+ e.setElectrovalence(orderInvoiceDetailList.stream().filter(t->t.getOrderInvoiceId().equals(e.getId()) &&t.getElectrovalence()!=null).map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get());
+ e.setServiceCharge(orderInvoiceDetailList.stream().filter(t->t.getOrderInvoiceId().equals(e.getId()) && t.getServiceCharge()!=null).map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get());
+ });
+ }
+
pageInfo.setRecords(list);
return pageInfo;
@@ -286,39 +312,50 @@
@Override
public Map<String, Integer> statusCount(TOrderInvoiceQuery query) {
Map<String, Integer> map = new HashMap<>();
- List<TAppUser> userList = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
- if(CollectionUtils.isEmpty(userList)){
- map.put("notAccepted",0);
- map.put("processing",0);
- map.put("finished",0);
- return map;
+ List<TAppUser> tAppUsers = new ArrayList<>();
+
+ if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
+ tAppUsers = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
+ if(CollectionUtils.isEmpty(tAppUsers)){
+ map.put("notAccepted",0);
+ map.put("processing",0);
+ map.put("finished",0);
+ return map;
+ }
}
- query.setUserIds(userList.stream().map(TAppUser::getId).collect(Collectors.toList()));
+
+ query.setUserIds(tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()));
map = this.baseMapper.statusCount(query);
return map;
}
@Override
public List<TOrderInvoiceVO> export(TOrderInvoiceQuery query) {
+ List<TAppUser> tAppUsers = new ArrayList<>();
// 查询申请用户
- List<TAppUser> userList = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
- if(CollectionUtils.isEmpty(userList)){
- return new ArrayList<>();
+ if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
+ tAppUsers = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
+ if(CollectionUtils.isEmpty(tAppUsers)){
+ return new ArrayList<TOrderInvoiceVO>();
+ }
}
- query.setUserIds(userList.stream().map(TAppUser::getId).collect(Collectors.toList()));
+ query.setUserIds(tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()));
PageInfo<TOrderInvoiceVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
List<TOrderInvoiceVO> list = this.baseMapper.export(query);
List<Long> ids = list.stream().map(TOrderInvoiceVO::getId).collect(Collectors.toList());
List<TOrderInvoiceDetail> orderInvoiceDetailList = orderInvoiceDetailService.list(new LambdaQueryWrapper<TOrderInvoiceDetail>()
.in(TOrderInvoiceDetail::getOrderInvoiceId, ids));
+ List<TAppUser> finalTAppUsers = tAppUsers;
list.forEach(e->{
e.setServiceTariff(orderInvoiceDetailList.get(0).getServiceTariff());
e.setElectricityTariff(orderInvoiceDetailList.get(0).getElectricityTariff());
e.setAddedServiceTariff(orderInvoiceDetailList.get(0).getAddedServiceTariff());
- e.setAddedService(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get());
- e.setElectrovalence(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get());
- e.setServiceCharge(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get());
- e.setUserPhone(userList.stream().filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
+ e.setAddedService(orderInvoiceDetailList.stream().filter(t->t.getAddedService()!=null).map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get());
+ e.setElectrovalence(orderInvoiceDetailList.stream().filter(t->t.getElectrovalence()!=null).map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get());
+ e.setServiceCharge(orderInvoiceDetailList.stream().filter(t->t.getServiceCharge()!=null).map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get());
+ if (e.getBillingUserId()!=null){
+ e.setUserPhone(finalTAppUsers.stream().filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
+ }
});
return list;
}
--
Gitblit v1.7.1