From 35e2ef0acc864f44cc99cc2c946ec78b4e5535e6 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 25 九月 2024 11:23:31 +0800
Subject: [PATCH] 工作台修改
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java | 137 ++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 126 insertions(+), 11 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 ac22a39..9e9a60e 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
@@ -4,23 +4,25 @@
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserCar;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
-import com.ruoyi.order.api.model.TChargingOrder;
-import com.ruoyi.order.api.model.TOrderInvoice;
-import com.ruoyi.order.api.model.TOrderInvoiceDetail;
-import com.ruoyi.order.api.model.TShoppingOrder;
+import com.ruoyi.order.api.model.*;
+import com.ruoyi.order.api.query.TOrderInvoiceQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
+import com.ruoyi.order.api.vo.TOrderInvoiceVO;
import com.ruoyi.order.dto.*;
import com.ruoyi.order.mapper.TOrderInvoiceMapper;
-import com.ruoyi.order.service.TChargingOrderService;
-import com.ruoyi.order.service.TOrderInvoiceDetailService;
-import com.ruoyi.order.service.TOrderInvoiceService;
-import com.ruoyi.order.service.TShoppingOrderService;
+import com.ruoyi.order.service.*;
import com.ruoyi.other.api.domain.TCoupon;
import com.ruoyi.other.api.domain.TGoods;
import com.ruoyi.other.api.domain.TInvoiceType;
@@ -30,10 +32,12 @@
import io.seata.spring.annotation.GlobalTransactional;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
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;
@@ -75,7 +79,12 @@
@Resource
private CouponClient couponClient;
+ @Resource
+ private AppUserClient appUserClient;
+ @Resource
+ private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
+
@@ -90,7 +99,7 @@
public AjaxResult addOrderInvoice(AddOrderInvoice addOrderInvoice) {
Long userId = tokenService.getLoginUserApplet().getUserId();
String orders = addOrderInvoice.getOrders();
- if(StringUtils.isNotEmpty(orders)){
+ if(StringUtils.isEmpty(orders)){
return AjaxResult.error("请选择有效的订单");
}
JSONArray parse = JSONArray.parse(orders);
@@ -109,14 +118,20 @@
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());
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));
+ BigDecimal electrovalence = list.stream().map(TChargingOrderAccountingStrategy::getElectrovalence).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal serviceCharge = list.stream().map(TChargingOrderAccountingStrategy::getServiceCharge).reduce(BigDecimal.ZERO, BigDecimal::add);
+
TOrderInvoiceDetail orderInvoiceDetail = new TOrderInvoiceDetail();
orderInvoiceDetail.setOrderInvoiceId(addOrderInvoice.getId());
orderInvoiceDetail.setInvoiceAmount(map.get(orderId));
@@ -125,6 +140,9 @@
orderInvoiceDetail.setElectricityTariff(invoiceType.getElectricityTariff());
orderInvoiceDetail.setServiceTariff(invoiceType.getServiceTariff());
orderInvoiceDetail.setAddedServiceTariff(invoiceType.getAddedServiceTariff());
+ orderInvoiceDetail.setElectrovalence(electrovalence);
+ orderInvoiceDetail.setServiceCharge(serviceCharge);
+ orderInvoiceDetail.setAddedService(serviceCharge.multiply(invoiceType.getAddedServiceTariff().divide(new BigDecimal(100))));
orderInvoiceDetailService.save(orderInvoiceDetail);
}
return AjaxResult.success();
@@ -139,9 +157,10 @@
@Override
public List<OrderInvoiceList> getMyOrderInvoiceList(GetOrderInvoiceList query) {
Long userId = tokenService.getLoginUserApplet().getUserId();
+ Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize();
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()));
+ .last(" limit " + pageCurr + ", " + query.getPageSize()));
List<OrderInvoiceList> pageList = new ArrayList<>();
for (TOrderInvoice tOrderInvoice : list) {
OrderInvoiceList orderInvoiceList = new OrderInvoiceList();
@@ -228,4 +247,100 @@
}
return myOrderInvoiceInfo;
}
+
+ @Override
+ public PageInfo<TOrderInvoiceVO> pageList(TOrderInvoiceQuery query) {
+ List<TAppUser> tAppUsers = new ArrayList<>();
+ // 查询申请用户
+ if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
+ tAppUsers = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
+ if(CollectionUtils.isEmpty(tAppUsers)){
+ return new PageInfo<>();
+ }
+ }
+ 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) {
+ tOrderInvoiceVO.setUid(tOrderInvoiceVO.getId().toString());
+ List<Long> collect = orderInvoiceDetailService.lambdaQuery().eq(TOrderInvoiceDetail::getOrderInvoiceId, tOrderInvoiceVO.getId())
+ .eq(TOrderInvoiceDetail::getOrderType, 1).list().stream()
+ .map(TOrderInvoiceDetail::getOrderId).collect(Collectors.toList());
+ // 将其全部转化为String
+ tOrderInvoiceVO.setIds(collect.stream().map(String::valueOf).collect(Collectors.toList()));
+ }
+ // 查询这个开票的订单ids
+
+ 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().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(t->t.getId()!=null).filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
+ }
+ });
+
+ pageInfo.setRecords(list);
+ return pageInfo;
+ }
+
+ @Override
+ public Map<String, Integer> statusCount(TOrderInvoiceQuery query) {
+ Map<String, Integer> map = new HashMap<>();
+ 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(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<>();
+ // 查询申请用户
+ if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
+ tAppUsers = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
+ if(CollectionUtils.isEmpty(tAppUsers)){
+ return new ArrayList<TOrderInvoiceVO>();
+ }
+ }
+ 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().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