Pu Zhibing
2024-11-02 6b82b8a598226a3e0bd2ef57a6f2282bd135d709
Merge remote-tracking branch 'origin/master'
14个文件已修改
122 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TSettlementConfirm.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/template/运营商名称1-充电桩名称1-结算对账单明细-结算月份1.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TSettlementConfirm.java
@@ -101,6 +101,12 @@
    @ApiModelProperty(value = "承担金额")
    @TableField("proportion_money")
    private BigDecimal proportionMoney;
    @ApiModelProperty(value = "合作商充电服务费根据合同约定分成比例")
    @TableField(exist = false)
    private String proportionPartnerString;
    @ApiModelProperty(value = "平台充电服务费根据合同约定分成比例")
    @TableField(exist = false)
    private String proportionMoneyString;
    @ApiModelProperty(value = "本期结算电费总金额 (实际电费转账)")
    @TableField("total_electronic")
    private BigDecimal totalElectronic;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -17,6 +17,8 @@
    @ApiModelProperty(value = "订单状态")
    private Integer status;
    @ApiModelProperty(value = "充值支付方式(1=微信,2=支付宝)")
    private Integer rechargePaymentType;
    @ApiModelProperty(value = "充值支付状态(1=待支付,2=已支付)")
    private Integer rechargePaymentStatus;
    @ApiModelProperty(value = "电站id")
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -141,7 +141,7 @@
        BigDecimal vipMoney = divide1.multiply(vipElectrovalence).setScale(2,BigDecimal.ROUND_HALF_UP);
//        BigDecimal subtract = divide.subtract(divide1);
        // 优惠金额
        data.setMoney(electrovalence.multiply(divide1).subtract(vipMoney).setScale(2, BigDecimal.ROUND_HALF_UP));
        data.setMoney(electrovalence.multiply(divide1).subtract(vipMoney).setScale(2, BigDecimal.ROUND_DOWN));
        return AjaxResult.ok(data);
    }
    /**
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -92,7 +92,7 @@
    @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理", "管理后台-充电桩信息"},value = "查询计费策略明细列表")
    @GetMapping(value = "/queryAccountingStrategyDetailByStrategyId")
    public AjaxResult<List<TAccountingStrategyDetailVO>> queryAccountingStrategyDetailByStrategyId(@RequestParam("strategyId") Integer strategyId) {
        List<TAccountingStrategyDetailVO> list = accountingStrategyDetailService.queryAccountingStrategyDetailByStrategyId(strategyId);
        List<TAccountingStrategyDetailVO> list = accountingStrategyDetailService.queryMangementAccountingStrategyDetailByStrategyId(strategyId);
        list.forEach(detail -> {
            detail.setTotalPrice(detail.getElectrovalence().add(detail.getServiceCharge()));
        });
@@ -272,8 +272,9 @@
                String twoUserName = sysUserClient.getSysUser(accountingStrategy.getTwoUserId()).getData().getNickName();
                accountingStrategyVO.setTwoUserName(twoUserName);
            }
            if(null != children.getUserId()){
                String userName = sysUserClient.getSysUser(children.getUserId()).getData().getNickName();
            TAccountingStrategy accountingStrategy1 = accountingStrategyService.getById(id);
            if(null != accountingStrategy1.getUserId()){
                String userName = sysUserClient.getSysUser(accountingStrategy1.getUserId()).getData().getNickName();
                accountingStrategyVO.setUserName(userName);
            }
            accountingStrategyVO.setAccountingStrategyDetailList(accountingStrategyDetailService.list(Wrappers.lambdaQuery(TAccountingStrategyDetail.class)
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -547,9 +547,18 @@
            if (chargingOrder.getCode()!=null){
                List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
                if (data6!=null && !data6.isEmpty()){
                    // 第一条数据soc为开始 最后一条数据soc为结束soc
                    settlementExportVO.setStartSoc(data6.get(0).getSoc()+"%");
                    settlementExportVO.setEndSoc(data6.get(data6.size()-1).getSoc()+"%");
                    int min = 100;
                    int max = 0;
                    for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
                        if (uploadRealTimeMonitoringData.getSoc()>max){
                            max = uploadRealTimeMonitoringData.getSoc();
                        }
                        if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){
                            min = uploadRealTimeMonitoringData.getSoc();
                        }
                    }
                    settlementExportVO.setEndSoc(max+"");
                    settlementExportVO.setStartSoc(min+"");
                }
            }
            settlementExportVO.setIsSoc("否");
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
@@ -203,7 +203,7 @@
            List<Map<String, Object>> charMap = new ArrayList<>();
            // 生成从 "00:00" 到 "23:00" 的时间数据
            // 生成从 "00:00" 到 "23:00" 的时间数据-------
            for (int hour = 0; hour < 24; hour++) {
                String time = String.format("%02d:00", hour);
                Map<String, Object> mapWithTimeValue = findMapWithTimeValue(maps, time);
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java
@@ -23,6 +23,12 @@
     * @return
     */
    List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId);
    /**
     * 查询计费策略明细列表---后台
     * @param strategyId
     * @return
     */
    List<TAccountingStrategyDetailVO> queryMangementAccountingStrategyDetailByStrategyId(Integer strategyId);
    /**
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
@@ -62,7 +62,7 @@
    @Override
    public List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId) {
        List<TAccountingStrategyDetailVO> tAccountingStrategyDetailVOS = this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId);
        Long userId = tokenService.getLoginUser().getUserid();
        Long userId = tokenService.getLoginUserApplet().getUserId();
        TAppUser appUser = appUserClient.getUserById(userId).getData();
        for (TAccountingStrategyDetailVO tAccountingStrategyDetailVO : tAccountingStrategyDetailVOS) {
            GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
@@ -73,13 +73,20 @@
            if(Objects.nonNull(data1)){
                String vipJson = data1.getVipJson();
                TVip vip = JSON.parseObject(vipJson, TVip.class);
                tAccountingStrategyDetailVO.setDiscount(vip.getDiscount().divide(new BigDecimal(10)));
                if(Objects.nonNull(vip) && vip.getType() == 2){
                    tAccountingStrategyDetailVO.setDiscount(vip.getDiscount().divide(new BigDecimal(10)));
                }
            }
        }
        return tAccountingStrategyDetailVOS;
    }
    @Override
    public List<TAccountingStrategyDetailVO> queryMangementAccountingStrategyDetailByStrategyId(Integer strategyId) {
        return this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId);
    }
    @Override
    public List<TAccountingStrategyDetailVO> queryStrategyBySiteIdAndTime(Integer siteId) {
        Site site = siteService.getById(siteId);
        TAccountingStrategy accountingStrategy = accountingStrategyMapper.selectById(site.getAccountingStrategyId());
ruoyi-service/ruoyi-chargingPile/src/main/resources/template/运营商名称1-充电桩名称1-结算对账单明细-结算月份1.xlsx
Binary files differ
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
@@ -74,7 +74,7 @@
        ChargingBillVO res = chargingBillService.chargingBillList1(dto);
        List<ChargingBillListVO> records = res.getList().getRecords();
        accountListVO.setBillCount(records.size());
        accountListVO.setTotalAmount(res.getOrderAmount().subtract(res.getRefundAmount())
        accountListVO.setTotalAmount(res.getPaymentAmount().subtract(res.getRefundAmount())
                .subtract(res.getCommissionAmount()).subtract(res.getSharingAmount()));
        accountListVO.setPaymentAmount(res.getPaymentAmount());
        accountListVO.setRefundAmount(res.getRefundAmount());
@@ -292,7 +292,7 @@
        int i =1;
        for (TChargingOrder tChargingOrder : tChargingOrders) {
            // 账单信息
            paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount());
            paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
            // 退款信息
            ChargingBillRefundExport chargingBillRefundExport = new ChargingBillRefundExport();
@@ -354,13 +354,11 @@
                String name = data1.get(0).getName();
                chargingBillExport.setSiteName(name);
            }
        }
        chargingBillExport.setPaymentAmount(paymentAmount);
        chargingBillExport.setRefundAmount(refundAmount);
        chargingBillExport.setIncome(paymentAmount.subtract(refundAmount));
        chargingBillExports.add(chargingBillExport);
        // 导出
        List<Map<String, Object>> sheetsList = new ArrayList<>();
        for (int i1 = 1; i1 <= 3; i1++) {
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -58,6 +58,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
@@ -112,6 +113,8 @@
    @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"})
    @PutMapping("/export")
    public void export(@RequestBody ChargingListQuery dto) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        ChargingOrderTimeVO res = chargingOrderService.chargingList(dto);
        List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>();
        List<ChargingOrderListVO> exportList = res.getList().getRecords();
@@ -149,10 +152,22 @@
            tChargingOrderExport.setOrderClassification("1");
            tChargingOrderExport.setStartType("扫码");
            tChargingOrderExport.setOne("小程序");
            tChargingOrderExport.setTwo("小程序");
            tChargingOrderExport.setCreateTime(chargingOrderListVO.getCreateTime()+"");
            tChargingOrderExport.setStartTime(chargingOrderListVO.getStartTime()+"");
            tChargingOrderExport.setEndTime(chargingOrderListVO.getEndTime()+"");
            if (chargingOrderListVO.getRechargePaymentType()!=null){
                switch (chargingOrderListVO.getRechargePaymentType()){
                    case 1:
                        tChargingOrderExport.setTwo("微信小程序");
                        break;
                    case 2:
                        tChargingOrderExport.setTwo("支付宝小程序");
                        break;
                }
            }
            String s1 = DateUtils.localDateTimeToString(chargingOrderListVO.getCreateTime());
            String s2 = DateUtils.localDateTimeToString(chargingOrderListVO.getStartTime());
            String s3 = DateUtils.localDateTimeToString(chargingOrderListVO.getEndTime());
            tChargingOrderExport.setCreateTime(s1);
            tChargingOrderExport.setStartTime(s2);
            tChargingOrderExport.setEndTime(s3);
            tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+"");
            tChargingOrderExport.setType("充电订单");
            tChargingOrderExport.setChargingType("单桩双充");
@@ -205,7 +220,6 @@
                    tChargingOrderExport.setVipType(data1.getName());
                }
            }
//            tChargingOrderExport.setVipType();
            tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否");
            if (data3!=null){
                tChargingOrderExport.setRealName(data3.getName());
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -104,9 +104,7 @@
        BigDecimal refundAmount = new BigDecimal("0");
        int orderCount = 0;
        for (ChargingBillListVO chargingBillListVO : list) {
            if (chargingBillListVO.getType()==2){
                continue;
            }
            String temp = "";
            String temp1 = "";
            switch (chargingBillListVO.getType()){
@@ -314,9 +312,8 @@
                chargingBillVO.setPaymentAmount(BigDecimal.ZERO);
            }
            chargingBillListVO.setOrderAmount(chargingBillVO.getPaymentAmount().subtract(chargingBillVO.getRefundAmount()==null?BigDecimal.ZERO:chargingBillVO.getRefundAmount()));
            chargingBillListVO.setPaymentAmount(paymentAmount);
            chargingBillListVO.setOrderAmount(orderAmount == null?BigDecimal.ZERO:orderAmount.subtract(sharingAmount).subtract(commissionAmount));
            chargingBillListVO.setOrderAmount(paymentAmount == null?BigDecimal.ZERO:orderAmount.subtract(sharingAmount).subtract(commissionAmount));
            chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:refundAmount);
            chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence);
            chargingBillListVO.setServiceCharge(serviceCharge == null?BigDecimal.ZERO:serviceCharge);
@@ -324,7 +321,7 @@
            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()
                            .subtract(commissionAmount).subtract(sharingAmount))
                            .subtract(commissionAmount).subtract(sharingAmount).setScale(2, RoundingMode.HALF_DOWN))
                    .subtract(chargingBillListVO.getCommissionAmount()==null?BigDecimal.ZERO:chargingBillListVO.getCommissionAmount())
                    .subtract(chargingBillListVO.getSharingAmount()==null?BigDecimal.ZERO:chargingBillListVO.getSharingAmount()));
            switch (chargingBillListVO.getType()){
@@ -344,6 +341,9 @@
            chargingBillListVO.setChargingSecond(chargingSecond);
        }
        for (ChargingBillListVO chargingBillListVO : list1) {
            if (chargingBillListVO.getType()==2){
                continue;
            }
            LocalDateTime billTime = chargingBillListVO.getBillTime();
            // 将其转化为yyyy-MM格式字符串
            chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
@@ -400,7 +400,7 @@
                }
                // 累加平台手续费
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006")));
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006")));
                }
                // 累加平台分佣
                if (tChargingOrder.getSharingAmount()!=null){
@@ -645,7 +645,7 @@
                }
                // 累加平台手续费
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(BigDecimal.valueOf(0.006)));
                    commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(BigDecimal.valueOf(0.006)));
                }
                // 累加平台分佣
                if (tChargingOrder.getSharingAmount()!=null){
@@ -664,7 +664,7 @@
            String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds);
            chargingBillVO.setChargingTime(timeString);
            chargingBillListVO.setPaymentAmount(paymentAmount);
            chargingBillListVO.setPaymentAmount(orderAmount.subtract(commissionAmount).subtract(sharingAmount).setScale(2,RoundingMode.HALF_DOWN));
            chargingBillListVO.setOrderAmount(orderAmount);
            chargingBillListVO.setElectrovalence(electrovalence);
            chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN));
@@ -756,8 +756,8 @@
                }
                // 累加平台手续费
                if (tChargingOrder.getOrderAmount()!=null){
                    commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006")));
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006")));
                    commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006")));
                    commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006")));
                }
                // 累加平台分佣
                if (tChargingOrder.getSharingAmount()!=null){
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1413,7 +1413,7 @@
            chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
            BigDecimal bigDecimal = new BigDecimal("0.006");
            if (chargingOrderListVO.getOrderAmount()!=null){
                chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getOrderAmount().multiply(bigDecimal));
                chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getPaymentAmount().multiply(bigDecimal));
            }
            chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
            chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
@@ -1441,9 +1441,20 @@
            // 获取开始SOC 结束soc
            if (chargingOrderListVO.getCode()!=null){
                List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData();
            if (data6!=null && !data6.isEmpty()){
                    chargingOrderListVO.setEndSoc(data6.get(0).getSoc().toString());
                    chargingOrderListVO.setStartSoc(data6.get(data6.size()-1).getSoc().toString());
                int min = 100;
                int max = 0;
                for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
                    if (uploadRealTimeMonitoringData.getSoc()>max){
                        max = uploadRealTimeMonitoringData.getSoc();
                    }
                    if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){
                        min = uploadRealTimeMonitoringData.getSoc();
                    }
                }
                    chargingOrderListVO.setEndSoc(max+"");
                    chargingOrderListVO.setStartSoc(min+"");
                }
            }
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -933,7 +933,7 @@
            from t_charging_order
            where 1=1
        AND  del_flag = 0
        AND recharge_payment_status = 2
        AND recharge_payment_status = 2 and status = 5
            <if test="siteIds != null and siteIds.size() > 0">
                and site_id IN
                <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">