Pu Zhibing
2024-10-25 70082014b9b5c62f2edee1301343b3e54cfdc72e
Merge remote-tracking branch 'origin/master'
13个文件已修改
246 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/QrCodeDelivery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingBillListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/QrCodeDeliveryMessage.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/QrCodeDelivery.java
@@ -11,6 +11,7 @@
public class QrCodeDelivery {
    private String charging_pile_code; // 桩编码
    private String charging_gun_code; // 枪编码
    private Integer code_format; // "0:第一种前缀+桩编号  1:第二种前缀+桩编号+枪编号"
    private Integer prefix_length; // 二维码前缀长度长度最大不超过200 字节
    private String code_prefix; // 如:“www.baidu.com?No=”
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingBillListVO.java
@@ -14,6 +14,8 @@
public class ChargingBillListVO extends TChargingBill {
    @ApiModelProperty(value = "账单周期")
    private String billWeek;
    @ApiModelProperty(value = "账户类型名称")
    private String payTypeName;
    @ApiModelProperty(value = "充电时间 秒")
    private Integer chargingSecond;
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java
@@ -26,7 +26,7 @@
     * @return
     */
    @PostMapping("/t-evaluation-tag/getTagList")
    R<List<TEvaluationTagVO>> getTagList(Integer type);
    R<List<TEvaluationTagVO>> getTagList(@RequestParam("type") Integer type);
    /**
     * 获取标签列表
     * @return
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -238,11 +238,13 @@
        roleSiteClient.delRoleSite(dto.getRoleId());
        //添加站点权限
        List<TRoleSite> roleSites = new ArrayList<>();
        for (Integer siteId : dto.getSiteIds()) {
            TRoleSite roleSite = new TRoleSite();
            roleSite.setRoleId(role.getRoleId().intValue());
            roleSite.setSiteId(siteId);
            roleSites.add(roleSite);
        if(null != dto.getSiteIds()){
            for (Integer siteId : dto.getSiteIds()) {
                TRoleSite roleSite = new TRoleSite();
                roleSite.setRoleId(role.getRoleId().intValue());
                roleSite.setSiteId(siteId);
                roleSites.add(roleSite);
            }
        }
        roleSiteClient.addRoleSite(roleSites);
        return AjaxResult.success();
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
@@ -144,6 +144,7 @@
        String code_prefix = "https://mxcd.zhinenganguan.com?No=";
        QrCodeDelivery qrCodeDelivery = new QrCodeDelivery();
        qrCodeDelivery.setCharging_pile_code(chargingPile.getCode());
        qrCodeDelivery.setCharging_gun_code(dto.getCode());
        qrCodeDelivery.setCode_format(1);
        qrCodeDelivery.setPrefix_length(code_prefix.length());
        qrCodeDelivery.setCode_prefix(code_prefix);
@@ -181,6 +182,7 @@
        String code_prefix = "https://mxcd.zhinenganguan.com?No=";
        QrCodeDelivery qrCodeDelivery = new QrCodeDelivery();
        qrCodeDelivery.setCharging_pile_code(chargingPile.getCode());
        qrCodeDelivery.setCharging_gun_code(dto.getCode());
        qrCodeDelivery.setCode_format(1);
        qrCodeDelivery.setPrefix_length(code_prefix.length());
        qrCodeDelivery.setCode_prefix(code_prefix);
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java
@@ -289,6 +289,7 @@
    public JSONObject getMessageJsonString(Object object, String serviceId){
        JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(object));
        jsonObject.put("service_id", serviceId);
        log.info("发送数据service_id:{},发送内容:{}",serviceId,jsonObject);
        return jsonObject;
    }
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/QrCodeDeliveryMessage.java
@@ -11,6 +11,7 @@
public class QrCodeDeliveryMessage extends BaseMessage {
    private String charging_pile_code; // 桩编码
    private String charging_gun_code; // 枪编码
    private Integer code_format; // "0:第一种前缀+桩编号  1:第二种前缀+桩编号+枪编号"
    private Integer prefix_length; // 二维码前缀长度长度最大不超过200 字节
    private String code_prefix; // 如:“www.baidu.com?No=”
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
@@ -15,14 +15,11 @@
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.order.api.model.ExportUidDto;
import com.ruoyi.order.api.model.TChargingBill;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.*;
import com.ruoyi.order.api.query.TOrderInvoiceQuery;
import com.ruoyi.order.api.vo.AccountListVO;
import com.ruoyi.order.api.vo.ChargingBillListVO;
import com.ruoyi.order.api.vo.ChargingBillVO;
import com.ruoyi.order.api.model.ChargingListQuery;
import com.ruoyi.order.api.vo.TOrderInvoiceVO;
import com.ruoyi.order.export.*;
import com.ruoyi.order.service.*;
@@ -30,6 +27,7 @@
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -40,6 +38,7 @@
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
@@ -232,6 +231,8 @@
        }
    }
    @Autowired
    private TChargingOrderRefundService tChargingOrderRefundService;
    @ApiOperation(value = "下载-未出账", tags = {"管理后台-充电算账单"})
    @PutMapping("/download")
    public void download(@RequestBody ExportUidDto uid)
@@ -244,7 +245,7 @@
        chargingBillExport.setCode(byId.getCode());
        chargingBillExport.setAccountType("微信商户");
        chargingBillExport.setType(byId.getType().toString());
        chargingBillExport.setBillType("月结");
        chargingBillExport.setBillType("月账单");
        LocalDateTime billTime = byId.getBillTime();
        // 将billTime 减去一个月 转化为yyyy-MM格式字符串
        billTime = billTime.minusMonths(1);
@@ -256,15 +257,26 @@
        if (!data.isEmpty()){
            chargingBillExport.setSiteName(data.get(0).getName());
        }
        // 根据账单的出账时间 查询上个月的充电订单
        LocalDateTime localDate = byId.getBillTime().minusMonths(1);
        // 账单周期
//        // 根据账单的出账时间 查询上个月的充电订单
//        LocalDateTime localDate = byId.getBillTime().minusMonths(1);
//        // 账单周期
//        // 获取 LocalDate 对象
//        LocalDate date = localDate.toLocalDate();
//        // 获取该月份的第一天
//        LocalDate firstDayOfMonth = date.withDayOfMonth(1);
         LocalDateTime localDate = byId.getBillTime().minusDays(1);
        // todo 临时修改为前一天
        // 获取 LocalDate 对象
        LocalDate date = localDate.toLocalDate();
        // 获取该月份的第一天
        LocalDate firstDayOfMonth = date.withDayOfMonth(1);
//            // 获取该月份的第一天
//            LocalDate firstDayOfMonth = date.withDayOfMonth(1);
//            // 获取该月份的最后一天
//            LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
        // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59
        LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN);
        LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MAX);
        // 获取该月份的最后一天
        LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
//        LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
        QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
                .between("create_time", firstDayOfMonth, lastDayOfMonth)
                .eq("status", 5)
@@ -277,6 +289,7 @@
        List<TChargingOrder> tChargingOrders = chargingOrderService.list(eq);
        // 累加支付金额
        BigDecimal bigDecimal = new BigDecimal("0");
        int i =1;
        for (TChargingOrder tChargingOrder : tChargingOrders) {
            // 账单信息
@@ -303,26 +316,43 @@
                    chargingBillPayExport.setPlatformPay("支付宝小程序支付");
            }
            chargingBillRefundExport.setRechargeSerialNumber(tChargingOrder.getRechargeSerialNumber());
            chargingBillRefundExport.setCode(tChargingOrder.getCode());
            chargingBillRefundExport.setPayTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",DateUtils.toDate(tChargingOrder.getPayTime())));
            if (tChargingOrder.getRefundTime()!=null){
                chargingBillRefundExport.setRefundTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",DateUtils.toDate(tChargingOrder.getRefundTime())));
            TChargingOrderRefund one = tChargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getChargingOrderId, tChargingOrder.getId()).one();
            if (one!=null){
                chargingBillRefundExport.setRechargeSerialNumber(one.getSerailNumber());
                chargingBillRefundExport.setCode(one.getCode());
                chargingBillRefundExport.setPayTime(tChargingOrder.getPayTime()!=null?DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",DateUtils.toDate(tChargingOrder.getPayTime())):"");
                if (tChargingOrder.getRefundTime()!=null){
                    chargingBillRefundExport.setRefundTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",DateUtils.toDate(tChargingOrder.getRefundTime())));
                }
                chargingBillRefundExport.setRefundMoney(one.getRefundAmount().toString());
                chargingBillRefundExport.setRefundRemark(one.getRefundReason());
                chargingBillRefundExport.setRefundCode(one.getRefundCode());
                chargingBillRefundExport.setRefundSerialNumber(one.getRefundSerialNumber());
                chargingBillRefundExports.add(chargingBillRefundExport);
            }
            chargingBillRefundExport.setRefundMoney(tChargingOrder.getRefundAmount().toString());
            chargingBillRefundExport.setRefundRemark(tChargingOrder.getRefundReason());
            chargingBillRefundExport.setRefundCode(tChargingOrder.getRefundCode());
            chargingBillRefundExport.setRefundSerialNumber(tChargingOrder.getRefundSerialNumber());
            chargingBillRefundExports.add(chargingBillRefundExport);
            // 支付信息
            chargingBillPayExport.setId(i+"");
            chargingBillPayExport.setRechargeSerialNumber(tChargingOrder.getRechargeSerialNumber());
            chargingBillPayExport.setCode(tChargingOrder.getCode());
            chargingBillPayExport.setPayTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",DateUtils.toDate(tChargingOrder.getPayTime())));
            chargingBillPayExport.setPaymentAmount(tChargingOrder.getPaymentAmount().toString());
            chargingBillPayExport.setPayTime(tChargingOrder.getPayTime()!=null?DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",DateUtils.toDate(tChargingOrder.getPayTime())):"");
            chargingBillPayExport.setPaymentAmount(tChargingOrder.getOrderAmount().toString());
            chargingBillPayExport.setTotal("");
            chargingBillPayExports.add(chargingBillPayExport);
            i++;
            bigDecimal = bigDecimal.add(tChargingOrder.getOrderAmount());
        }
        if (!chargingBillPayExports.isEmpty()){
            chargingBillPayExports.get(0).setTotal(bigDecimal+"");
        }
        if (byId.getSiteId()==0){
            chargingBillExport.setSiteName("全站");
        }else{
            List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(byId.getSiteId())).getData();
            if (data1!=null&&(!data1.isEmpty())){
                String name = data1.get(0).getName();
                chargingBillExport.setSiteName(name);
            }
        }
        chargingBillExport.setPaymentAmount(paymentAmount);
        chargingBillExport.setRefundAmount(refundAmount);
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -65,6 +65,13 @@
    private AppUserCarClient appUserCarClient;
    @Override
    public ChargingBillVO chargingBillList1(ChargingListQuery dto) {
        if (dto.getState()!=null){
            if (dto.getState()==1){
                dto.setState(2);
            }else {
                dto.setState(1);
            }
        }
        ChargingBillVO chargingBillVO = new ChargingBillVO();
        String startTime1 = null;
        String startTime2 = null;
@@ -256,8 +263,8 @@
                    serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
                }
                // 累加平台手续费
                if (tChargingOrder.getServiceCharge()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getServiceCharge().multiply(BigDecimal.valueOf(0.006))
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(BigDecimal.valueOf(0.006))
                            .setScale(2,RoundingMode.HALF_DOWN));
                }
                // 累加平台分佣
@@ -289,7 +296,7 @@
            chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:orderAmount);
            chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence);
            chargingBillListVO.setServiceCharge(serviceCharge == null?BigDecimal.ZERO:serviceCharge);
            chargingBillListVO.setCommissionAmount(commissionAmount == null?BigDecimal.ZERO:commissionAmount);
            chargingBillListVO.setCommissionAmount(commissionAmount == null?BigDecimal.ZERO:commissionAmount.setScale(2, RoundingMode.HALF_DOWN));
            chargingBillListVO.setSharingAmount(sharingAmount == null?BigDecimal.ZERO:sharingAmount);
            chargingBillListVO.setChargingCapacity(chargingCapacity == null?BigDecimal.ZERO:chargingCapacity);
            chargingBillListVO.setBillMoney(chargingBillListVO.getPaymentAmount().subtract(chargingBillListVO.getRefundAmount()==null?BigDecimal.ZERO:chargingBillListVO.getRefundAmount())
@@ -345,8 +352,6 @@
            chargingBillVO.setCategory("");
            chargingBillVO.setExportList(tChargingOrders);
            for (TChargingOrder tChargingOrder : tChargingOrders) {
                // 累加实收金额 支付金额减去退款金额
                if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){
                    paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
@@ -369,8 +374,8 @@
                    serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge());
                }
                // 累加平台手续费
                if (tChargingOrder.getServiceCharge()!=null){
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.006")));
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006")));
                }
                // 累加平台分佣
                if (tChargingOrder.getSharingAmount()!=null){
@@ -391,13 +396,13 @@
            }
        }
        chargingBillVO.setChargingCapacity(chargingCapacityTotal);
        chargingBillVO.setPaymentAmount(paymentAmountTotal);
        chargingBillVO.setOrderAmount(orderAmountTotal);
        chargingBillVO.setElectrovalence(electrovalenceTotal);
        chargingBillVO.setServiceCharge(serviceChargeTotal);
        chargingBillVO.setPaymentAmount(paymentAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setOrderAmount(orderAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setOrderCount(orderCount);
        chargingBillVO.setCommissionAmount(commissionAmountTotal);
        chargingBillVO.setSharingAmount(sharingAmountTotal);
        chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setDiscount(discountTotal);
@@ -495,8 +500,20 @@
            BigDecimal chargingCapacity = new BigDecimal("0");
            orderCount+=tChargingOrders.size();
            chargingBillVO.setCategory("");
            chargingBillListVO.setOrderCount(tChargingOrders.size());
            chargingBillVO.setExportList(tChargingOrders);
            for (TChargingOrder tChargingOrder : tChargingOrders) {
                if (tChargingOrder.getRechargePaymentType()!=null && tChargingOrder.getRechargePaymentType()==1){
                    chargingBillListVO.setPayTypeName("微信商户");
                }
                if (tChargingOrder.getRechargePaymentType()!=null && tChargingOrder.getRechargePaymentType()==2){
                    if (StringUtils.hasLength(chargingBillListVO.getPayTypeName())){
                        chargingBillListVO.setPayTypeName("微信商户+支付宝商户");
                    }else{
                        chargingBillListVO.setPayTypeName("支付宝商户");
                    }
                }
                List<Site> data = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData();
                if (!data.isEmpty()){
                    chargingBillVO.setSiteName(data.get(0).getName());
@@ -607,8 +624,8 @@
                serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
                }
                // 累加平台手续费
                if (tChargingOrder.getServiceCharge()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getServiceCharge().multiply(BigDecimal.valueOf(0.006)).setScale(2,RoundingMode.HALF_DOWN));
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(BigDecimal.valueOf(0.006)));
                }
                // 累加平台分佣
                if (tChargingOrder.getSharingAmount()!=null){
@@ -631,8 +648,8 @@
            chargingBillListVO.setOrderAmount(orderAmount);
            chargingBillListVO.setElectrovalence(electrovalence);
            chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setCommissionAmount(commissionAmount);
            chargingBillListVO.setSharingAmount(sharingAmount);
            chargingBillListVO.setCommissionAmount(commissionAmount.setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setSharingAmount(sharingAmount.setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setChargingCapacity(chargingCapacity);
            switch (chargingBillListVO.getType()){
                case 1:
@@ -722,9 +739,9 @@
                    serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge());
                }
                // 累加平台手续费
                if (tChargingOrder.getServiceCharge()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.006")).setScale(2, RoundingMode.HALF_DOWN));
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.006")).setScale(2, RoundingMode.HALF_DOWN));
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006")));
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006")));
                }
                // 累加平台分佣
                if (tChargingOrder.getSharingAmount()!=null){
@@ -746,14 +763,14 @@
            }
        }
        chargingBillVO.setChargingCapacity(chargingCapacityTotal);
        chargingBillVO.setPaymentAmount(paymentAmountTotal);
        chargingBillVO.setOrderAmount(orderAmountTotal);
        chargingBillVO.setElectrovalence(electrovalenceTotal);
        chargingBillVO.setServiceCharge(serviceChargeTotal);
        chargingBillVO.setPaymentAmount(paymentAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setOrderAmount(orderAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setOrderCount(orderCount);
        chargingBillVO.setCommissionAmount(commissionAmountTotal);
        chargingBillVO.setSharingAmount(sharingAmountTotal);
        chargingBillVO.setDiscount(discountTotal);
        chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
        chargingBillVO.setDiscount(discountTotal.setScale(2, RoundingMode.HALF_DOWN));
        pageInfo.setRecords(list);
        chargingBillVO.setList(pageInfo);
        return chargingBillVO;
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1283,8 +1283,8 @@
            chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
            chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
            BigDecimal bigDecimal = new BigDecimal("0.006");
            if (chargingOrderListVO.getServiceCharge()!=null){
                chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getServiceCharge().multiply(bigDecimal));
            if (chargingOrderListVO.getOrderAmount()!=null){
                chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getOrderAmount().multiply(bigDecimal));
            }
            chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount());
            chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
@@ -1500,8 +1500,8 @@
        chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
        BigDecimal bigDecimal = new BigDecimal("0.006");
        if (chargingOrder.getServiceCharge()!=null){
            chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getServiceCharge().multiply(bigDecimal));
        if (chargingOrder.getOrderAmount()!=null){
            chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getOrderAmount().multiply(bigDecimal));
        }
        chargingOrderListInfoVO.setElectrovalence(chargingOrder.getElectrovalence());
        chargingOrderListInfoVO.setServiceCharge(chargingOrder.getServiceCharge());
@@ -1865,7 +1865,7 @@
        
        //开始将优惠券优惠的金额添加到明细中
        BigDecimal couponDiscountAmount = order.getCouponDiscountAmount();
        if(couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0){
        if(null != couponDiscountAmount && couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0){
            List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId()));
            for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list) {
                BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
@@ -2290,10 +2290,10 @@
            }
            if (tChargingOrder.getRefundStatus()!=null &&tChargingOrder.getRefundStatus() == 2){
                // 如果成功退款 那么减去退款金额
                paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount()));
                paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount());
            }else{
                if (tChargingOrder.getPaymentAmount()!=null){
                    paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
                    paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount());
                }
            }
        }
@@ -2301,8 +2301,8 @@
        commissionAmount = sharingAmount.multiply(new BigDecimal("0.006"));
        // 订单手续费 订单支付金额 - 退款金额*0.6%
        orderCommission = paymentAmount.multiply(new BigDecimal("0.006"));
        tSettlementConfirm.setSharingAmount(sharingAmount);
        tSettlementConfirm.setCommissionAmount(commissionAmount);
        tSettlementConfirm.setSharingAmount(sharingAmount.setScale(2, RoundingMode.HALF_DOWN));
        tSettlementConfirm.setCommissionAmount(commissionAmount.setScale(2, RoundingMode.HALF_DOWN));
        tSettlementConfirm.setElectrovalence(electrovalence);
        // 服务费=总服务费-三费收费-交易手续费-交易手续费-服务费会员抵扣-服务费优惠券抵扣
        tSettlementConfirm.setServiceCharge(serviceCharge.subtract(commissionAmount).subtract(sharingAmount).subtract(orderCommission).subtract(vipDiscount).subtract(couponDiscount));
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
@@ -93,6 +93,14 @@
            TChargingOrder tChargingOrder = chargingOrderMapper.selectById(orderAppeal.getOrderId());
            orderAppealVO.setChargingOrder(tChargingOrder);
            if(Objects.nonNull(tChargingOrder)){
                SiteNameVO siteNameVO = chargingGunClient.getAllInfoById(tChargingOrder.getChargingGunId()).getData();
                if(Objects.nonNull(siteNameVO)){
                    orderAppealVO.setGunName(siteNameVO.getGunName());
                    orderAppealVO.setGunNumber(siteNameVO.getGunNumber());
                    orderAppealVO.setPileName(siteNameVO.getPileName());
                    orderAppealVO.setPileNumber(siteNameVO.getPileNumber());
                    orderAppealVO.setSiteName(siteNameVO.getSiteName());
                }
                orderAppealVO.setEndMode(tChargingOrder.getEndMode());
            }
        }else if (orderAppeal.getOrderType() == 2) {
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -63,37 +63,37 @@
 */
@Service
public class TShoppingOrderServiceImpl extends ServiceImpl<TShoppingOrderMapper, TShoppingOrder> implements TShoppingOrderService {
    @Resource
    private TokenService tokenService;
    @Resource
    private GoodsClient goodsClient;
    @Resource
    private CouponClient couponClient;
    @Resource
    private AppUserClient appUserClient;
    @Resource
    private AppUserAddressClient appUserAddressClient;
    @Resource
    private AppCouponClient appCouponClient;
    @Resource
    private WxPaymentClient wxPaymentClient;
    @Resource
    private AliPaymentClient aliPaymentClient;
    @Resource
    private TShoppingOrderRefundService shoppingOrderRefundService;
    @Autowired
    public RedisTemplate redisTemplate;
    @Override
    public TActivityVO activityStatistics(TActivityStatisticsQuery dto) {
@@ -270,8 +270,8 @@
        res.setGrantVip(grantVip);
        return res;
    }
    /**
     * 获取小程序商城购买订单列表
     * @param query
@@ -318,8 +318,8 @@
        map.put("total", count);
        return map;
    }
    /**
     * 获取购买订单详情
     * @param id
@@ -369,8 +369,8 @@
        }
        return info;
    }
    /**
     * 取消订单
     * @param id
@@ -391,10 +391,10 @@
        if(shoppingOrder.getPaymentAmount().compareTo(bigDecimal) == 0 && shoppingOrder.getStatus() == 4){
            return AjaxResult.error("订单已取消,不能重复操作");
        }
        //退款金额
        BigDecimal refundAmount = shoppingOrder.getPaymentAmount().subtract(bigDecimal);
        //先查询第三方订单状态订单是否退款
        //支付方式(1=微信,2=支付宝)
        Integer paymentType = shoppingOrder.getPaymentType();
@@ -443,7 +443,7 @@
        shoppingOrderRefund.setRefundRemark("全额退款");
        shoppingOrderRefund.setRefundTotalAmount(refundAmount.add(bigDecimal));
        shoppingOrderRefund.setPayAmount(shoppingOrder.getPaymentAmount());
        shoppingOrder.setCancellationTime(LocalDateTime.now());
        shoppingOrder.setCancellationId(shoppingOrder.getAppUserId());
        if(1 == paymentType){
@@ -479,8 +479,8 @@
        }
        return AjaxResult.success();
    }
    /**
     * 商城订单取消订单微信退款处理
     * @param out_refund_no 退款单号
@@ -505,7 +505,7 @@
        shoppingOrder.setRefundStatus(2);
        shoppingOrder.setRefundTime(one.getRefundTime());
        this.updateById(shoppingOrder);
        //商品
        if(shoppingOrder.getOrderType() == 1){
            //redis锁 和支付使用同一个锁
@@ -546,7 +546,7 @@
        }
        return AjaxResult.success();
    }
    /**
     * 获取未开票的订单列表
     * @param query
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -52,7 +52,7 @@
    // 每天凌晨12点执行的定时任务
@Scheduled(cron = "0 0 12 * * ?")
@Scheduled(cron = "0 0 0 * * ?")
//@Scheduled(fixedRate = 60000)
    public void taskMonth() {
        try {
@@ -143,7 +143,7 @@
    }
    // 每天晚上23:59:59执行的定时任务
    @Scheduled(cron = "0 0 23 1 * ?")
    @Scheduled(cron = "0 0 23 * * ?")
    public void taskLastDay() {
        try {
            // 获取上个月的开始和结束日期