From 7ea47db47d3e039e25531cd511d8d7b1342ccfc0 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 23 十月 2024 20:04:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 137 +++++---
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java | 4
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java | 3
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java | 36 ++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java | 72 ++++
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java | 28 +
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java | 2
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml | 4
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java | 44 ++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java | 15
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java | 1
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java | 26 +
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java | 6
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java | 13
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java | 2
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java | 2
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 7
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java | 3
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 45 ++
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java | 9
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java | 1
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java | 5
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 264 ++++++++++++++---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java | 19 +
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java | 17
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java | 2
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java | 73 +++-
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 10
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 21 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java | 8
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java | 3
33 files changed, 691 insertions(+), 195 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
index 9d3b023..b0deac8 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
@@ -59,6 +59,11 @@
public R<TAppCoupon> getAppCouponById(Long id) {
return R.fail("根据id获取优惠券领取记录失败:" + throwable.getMessage());
}
+
+ @Override
+ public R updateAppCoupon(TAppCoupon appCoupon) {
+ return R.fail("修改用户优惠券失败:" + throwable.getMessage());
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
index ceeb10c..9444f2b 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
@@ -62,4 +62,13 @@
*/
@PostMapping(value = "/t-app-coupon/getAppCouponById")
R<TAppCoupon> getAppCouponById(@RequestParam("id") Long id);
+
+
+ /**
+ * 修改用户优惠券
+ * @param appCoupon
+ * @return
+ */
+ @PostMapping(value = "/t-app-coupon/updateAppCoupon")
+ R updateAppCoupon(@RequestBody TAppCoupon appCoupon);
}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java
index dcddb54..690ea5e 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java
@@ -23,7 +23,7 @@
@ApiModelProperty(value = "服务费折扣")
private BigDecimal serviceFeeDiscount;
- @ApiModelProperty(value = "折扣")
+ @ApiModelProperty(value = "模板折扣几折")
private BigDecimal discount;
}
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
index e00f706..58d5b85 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
@@ -26,6 +26,7 @@
private Integer insertion_status; // 是否插枪(0:否,1:是)
private BigDecimal output_voltage; // 输出电压,精确到小数点后一位;待机置零
private BigDecimal output_current; // 输出电流,精确到小数点后一位;待机置零
+ private BigDecimal power; // 功率
private Integer gun_line_temperature; // 枪线温度,整形,偏移量-50;待机置零
private String gun_line_code; // 枪线编码,没有置零
private Integer soc; // SOC待机置零;交流桩置零
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java
index 2a3ecf5..6bbb818 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java
@@ -55,6 +55,9 @@
@ApiModelProperty(value = "1未出账2已出账")
@TableField("status")
private Integer status;
+ @ApiModelProperty(value = "账单类型 1充电算帐单 2账号结算帐单")
+ @TableField("billType")
+ private Integer billType;
@ApiModelProperty(value = "1日结2月结")
@TableField("orderState")
private Integer orderState;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
index 59b6847..57bc9ba 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -36,6 +36,10 @@
private Long chargingSecond;
@ApiModelProperty(value = "充电电流 度")
private BigDecimal chargingCapacity;
+ @ApiModelProperty(value = "充电电流 度")
+ private BigDecimal electricity;
+ @ApiModelProperty(value = "充电到账金额")
+ private BigDecimal orderAmount;
@ApiModelProperty(value = "车牌号")
private String licensePlate;
@ApiModelProperty(value = "客户手机号")
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java
index f4f6ee2..48a0b5c 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java
@@ -23,8 +23,7 @@
private Long chargingSecond;
@ApiModelProperty(value = "平台手续费")
private BigDecimal platFormMoney;
- @ApiModelProperty(value = "三方平台分佣")
- private BigDecimal commission;
+
@ApiModelProperty(value = "车牌号")
private String licensePlate;
@ApiModelProperty(value = "手机号")
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java
index b991d8e..a02ee90 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java
@@ -13,7 +13,8 @@
@ApiModelProperty(value = "uid")
private String uid;
-
+ @ApiModelProperty(value = "orderIdStr")
+ private String orderIdStr;
@ApiModelProperty(value = "充电订单")
private TChargingOrder chargingOrder;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index 4b138c6..7944129 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -109,7 +109,7 @@
TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingGun.getChargingPileId()).getData();
SiteInfoVO data = chargingPileClient.getSiteInfoByNumber1(chargingPile.getCode().toString()).getData();
data.setChargingGunId(id);
- data.setSiteId(chargingGun.getId());
+ data.setSiteId(chargingGun.getSiteId());
data.setChargeMode(chargingGun.getChargeMode());
List<TAppUserCar> cars = appUserCarService.list(new QueryWrapper<TAppUserCar>()
.eq("app_user_id",tokenService.getLoginUserApplet().getUserId())
@@ -308,5 +308,16 @@
TAppCoupon appCoupon = tAppCouponService.getById(id);
return R.ok(appCoupon);
}
+
+ /**
+ * 修改用户优惠券
+ * @param appCoupon
+ * @return
+ */
+ @PostMapping("/updateAppCoupon")
+ public R updateAppCoupon(@RequestBody TAppCoupon appCoupon){
+ tAppCouponService.updateById(appCoupon);
+ return R.ok();
+ }
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
index 6c8218b..dd40be3 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
@@ -73,7 +73,7 @@
//拿到单位列表
String[] split = ids.split(",");
- List<TAppUserTag> list = appUserTagService.lambdaQuery().in(TAppUserTag::getUserTagId).list();
+ List<TAppUserTag> list = appUserTagService.lambdaQuery().in(TAppUserTag::getUserTagId,split).list();
if (!list.isEmpty()){
return R.fail("当前标签已有用户获取,无法删除");
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java
index 8626df8..85ec054 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java
@@ -1,9 +1,13 @@
package com.ruoyi.account.service.impl;
+import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.model.TInviteUser;
import com.ruoyi.account.mapper.TInviteUserMapper;
import com.ruoyi.account.service.TInviteUserService;
+import com.ruoyi.other.api.domain.TIntegralRule;
+import com.ruoyi.other.api.feignClient.IntegralRuleClient;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@@ -19,12 +23,19 @@
@Service
public class TInviteUserServiceImpl extends ServiceImpl<TInviteUserMapper, TInviteUser> implements TInviteUserService {
+ @Autowired
+ private IntegralRuleClient integralRuleClient;
+
@Override
public void saveInviteUser(Long appUserId, Long beInvitedAppUserId) {
+ // 查询邀请用户获得积分配置
+ TIntegralRule integralRule = integralRuleClient.getSet().getData();
+ JSONObject jsonObject = JSONObject.parseObject(integralRule.getInviteUsersToEarnPoints());
TInviteUser inviteUser = new TInviteUser();
- inviteUser.setAppUserId(appUserId);
- inviteUser.setBeInvitedAppUserId(beInvitedAppUserId);
+ inviteUser.setAppUserId(beInvitedAppUserId);
+ inviteUser.setBeInvitedAppUserId(appUserId);
inviteUser.setCreateTime(LocalDateTime.now());
+ inviteUser.setAward(jsonObject.getInteger("num1"));
this.save(inviteUser);
}
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
index 94abbc7..aaf608f 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.chargingPile.api.dto.TAccountingStrategyDTO;
import com.ruoyi.chargingPile.api.model.*;
import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy;
@@ -14,6 +15,7 @@
import com.ruoyi.chargingPile.service.TChargingPileService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.SteategyPassDto;
+import com.ruoyi.common.core.enums.status.AppUserStatusEnum;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
@@ -62,6 +64,9 @@
private ISiteService siteService;
@Autowired
private SysUserClient sysUserClient;
+
+ @Resource
+ private IntegrationClient integrationClient;
@Autowired
@@ -116,7 +121,7 @@
accountingStrategyService.save(dto);
if(null != dto.getSiteId()){
//下发硬件数据
- List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).list();
+ List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).eq(TChargingPile::getDelFlag, 0).list();
for (TChargingPile tChargingPile : list) {
integrationClient.setupBillingModel1(tChargingPile.getCode());
}
@@ -142,6 +147,9 @@
Boolean flag1 = accountingStrategyDetailService.isStrategyPriceConsistent(dto.getAccountingStrategyDetails());
if(!flag1){
return AjaxResult.error("同阶段费率值需一致");
+ }
+ if(Objects.isNull(dto.getDiscount())){
+ accountingStrategyService.update(Wrappers.<TAccountingStrategy>lambdaUpdate().set(TAccountingStrategy::getDiscount, null).eq(TAccountingStrategy::getId, dto.getId()));
}
// 判断修改的计费策略是否为已通过
if(null != dto.getAuditStatus() && (dto.getAuditStatus() == 3 || dto.getAuditStatus() == 4)){
@@ -173,11 +181,6 @@
});
accountingStrategyDetailService.saveBatch(accountingStrategyDetails);
}
- //下发硬件数据
- List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).list();
- for (TChargingPile tChargingPile : list) {
- integrationClient.setupBillingModel1(tChargingPile.getCode());
- }
}else {
// 删除计费策略明细信息
accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class)
@@ -187,6 +190,14 @@
// 添加明细
dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId()));
accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails());
+ }
+
+ if(null != dto.getSiteId()){
+ //下发硬件数据
+ List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).eq(TChargingPile::getDelFlag, 0).list();
+ for (TChargingPile tChargingPile : list) {
+ integrationClient.setupBillingModel1(tChargingPile.getCode());
+ }
}
return AjaxResult.success();
}
@@ -318,8 +329,7 @@
return AjaxResult.ok(accountingStrategyService.pageList(query));
}
- @Resource
- private IntegrationClient integrationClient;
+
@ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "审核")
@PostMapping(value = "/auth/pass")
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java
index 8156686..7fb53ff 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java
@@ -10,11 +10,17 @@
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
+import java.util.Objects;
/**
* <p>
@@ -30,7 +36,27 @@
@Resource
private TRepairService repairService;
-
+ @Resource
+ private TokenService tokenService;
+ @Autowired
+ private SysUserClient userClient;
+
+ /**
+ * 添加故障报修管理
+ */
+ @Log(title = "添加故障报修管理", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
+ @ApiOperation(tags = {"小程序-故障报修"},value = "添加故障报修管理")
+ @PostMapping(value = "/add")
+ public AjaxResult<String> add(@Validated @RequestBody TRepair dto) {
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ // 查询报修人员信息
+ SysUser user = userClient.getSysUser(userId).getData();
+ if(Objects.nonNull(user)){
+ dto.setRepairman(user.getUserName());
+ }
+ repairService.add(dto);
+ return AjaxResult.success();
+ }
@ResponseBody
@GetMapping("/getRepairList")
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java
index 4f85479..02edf11 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java
@@ -24,4 +24,10 @@
* @return
*/
List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, String name, String siteId);
+
+ /**
+ * 添加报修记录
+ * @param dto
+ */
+ void add(TRepair dto);
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
index 728a9f4..7ee4de8 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -145,9 +145,9 @@
user.setDelFlag("0");
user.setRoleId(partner.getRoleId().longValue());
user.setRoleType(2);
- user.setObjectId(partner.getId());
//添加新数据
this.save(partner);
+ user.setObjectId(partner.getId());
R r = sysUserClient.addSysUser(user);
if(200 != r.getCode()){
throw new RuntimeException(r.getMsg());
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index 8029ad5..8228a4c 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -24,6 +24,7 @@
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.integration.api.feignClient.IntegrationClient;
import com.ruoyi.other.api.domain.TVip;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
@@ -38,6 +39,7 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -75,6 +77,9 @@
private SysUserRoleClient sysUserRoleClient;
@Resource
private TParkingLotService parkingLotService;
+
+ @Resource
+ private IntegrationClient integrationClient;
@@ -233,9 +238,9 @@
if(StringUtils.isEmpty(site.getAddress())){
return AjaxResult.error("详细地址不能为空");
}
- if(StringUtils.isEmpty(site.getLon()) || StringUtils.isEmpty(site.getLat())){
- return AjaxResult.error("地图位置不能为空");
- }
+// if(StringUtils.isEmpty(site.getLon()) || StringUtils.isEmpty(site.getLat())){
+// return AjaxResult.error("地图位置不能为空");
+// }
if(StringUtils.isEmpty(site.getPhone())){
return AjaxResult.error("站点电话不能为空");
}
@@ -288,7 +293,7 @@
TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
if(Objects.nonNull(vip) && vip.getType() == 2){
list.forEach(item -> {
- item.setVipElectrovalence(vip.getDiscount().multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal()));
+ item.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal()));
});
}
}
@@ -370,7 +375,7 @@
TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
if(Objects.nonNull(vip) && vip.getType() == 2){
list.forEach(item -> {
- item.setVipElectrovalence(vip.getDiscount().multiply(item.getElectrovalence()));
+ item.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal()));
});
}
}
@@ -394,5 +399,11 @@
tChargingGun.setAccountingStrategyId(accountingStrategyId);
}
chargingGunService.updateBatchById(list);
+
+ //下发硬件数据
+ List<TChargingPile> list1 = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, id).eq(TChargingPile::getDelFlag, 0).list();
+ for (TChargingPile tChargingPile : list1) {
+ integrationClient.setupBillingModel1(tChargingPile.getCode());
+ }
}
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
index a8cc5e0..57d3f7e 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
@@ -135,7 +135,7 @@
// 查询最高折扣的会员
TVip monthlyCardDiscount = vipClient.getVipInfoByType(3).getData();
strategyPriceVO.setServiceFeeDiscount(monthlyCardDiscount.getMonthlyCardDiscount());
- // 查询最高抵扣的会员
+ // 查询最高优惠的会员
TVip maximumDeduction = vipClient.getVipInfoByType(1).getData();
strategyPriceVO.setMaxDiscountAmount(maximumDeduction.getMaximumDeduction());
// 查询最低起步价会员
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java
index 2fa9813..9bead20 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java
@@ -109,6 +109,7 @@
notification.setContent(data);
break;
}
+ this.save(notification);
}
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index 1c55a4d..eca82dd 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -298,8 +298,14 @@
List<TChargingGun> chargingGunList = chargingGuns.stream().filter(gun -> gun.getChargingPileId().equals(item.getId())).collect(Collectors.toList());
for (TChargingGun chargingGun : chargingGunList) {
if(chargingGun.getStatus().equals(4)){
- // TODO 查询正在充电的单子的实时记录
- chargingGun.setSoc(100);
+ // 查询正在充电的单子的实时记录
+ TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(chargingGun.getId()).getData();
+ if(Objects.nonNull(chargingOrder)){
+ UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
+ chargingGun.setSoc(uploadRealTimeMonitoringData.getSoc());
+ }else {
+ chargingGun.setSoc(100);
+ }
}
if(chargingGun.getStatus().equals(5)){
chargingGun.setSoc(100);
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java
index d348ebb..3832dc5 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java
@@ -3,14 +3,24 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.chargingPile.api.model.TRepair;
import com.ruoyi.chargingPile.mapper.TRepairMapper;
+import com.ruoyi.chargingPile.service.ISiteService;
+import com.ruoyi.chargingPile.service.TChargingPileNotificationService;
+import com.ruoyi.chargingPile.service.TChargingPileService;
import com.ruoyi.chargingPile.service.TRepairService;
+import com.ruoyi.common.core.constant.MsgConstants;
+import com.ruoyi.common.core.utils.HttpUtils;
+import com.ruoyi.common.core.utils.MsgUtil;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
@@ -22,10 +32,15 @@
* @author xiaochen
* @since 2024-08-08
*/
+@Slf4j
@Service
public class TRepairServiceImpl extends ServiceImpl<TRepairMapper, TRepair> implements TRepairService {
-
-
+ @Autowired
+ private ISiteService siteService;
+ @Autowired
+ private TChargingPileService chargingPileService;
+ @Autowired
+ private TChargingPileNotificationService chargingPileNotificationService;
/**
* 获取报修记录列表
* @param name
@@ -36,4 +51,21 @@
public List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, String name, String siteId) {
return this.baseMapper.getRepairList(pageInfo, name, siteId);
}
+
+ @Override
+ public void add(TRepair dto) {
+ // 故障短信提醒
+ Site site = siteService.getById(dto.getSiteId());
+ TChargingPile chargingPile = chargingPileService.getById(dto.getChargingPileId());
+ String siteName = site.getName();
+ String reqStr = MsgUtil.faultMsg(site.getPhone(), site.getName(), chargingPile.getNumber() + "");
+ String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr);
+ log.info("故障短信提醒:{}",result);
+ if(siteName.length()>10){
+ siteName = siteName.substring(0,10);
+ }
+ chargingPileNotificationService.saveData(4,dto.getSiteId(),dto.getChargingPileId(),site.getPhone(),"检测到"+siteName+"..."+chargingPile.getNumber()+"号桩设备离线,请及时查看处理!");
+ dto.setRepairTime(LocalDateTime.now());
+ this.save(dto);
+ }
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
index 2c96080..1073452 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -285,8 +285,10 @@
left join (
select
a.accounting_strategy_id,
+ a.service_charge AS serviceCharge,
+ a.electrovalence AS electrovalenceOriginal,
(a.electrovalence+a.service_charge) AS electrovalence,
- ((a.electrovalence+a.service_charge)*b.discount) AS vipElectrovalence
+ (a.electrovalence+(a.service_charge*b.discount)) AS vipElectrovalence
from
t_accounting_strategy_detail a
left join
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
index 5ffee38..3cb2293 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
@@ -43,7 +43,7 @@
AND tpr.code LIKE concat('%',#{query.code},'%')
</if>
<if test="query.licensePlate != null and query.licensePlate != ''">
- AND tpr.licensePlate LIKE concat('%',#{query.licensePlate},'%')
+ AND tpr.license_plate LIKE concat('%',#{query.licensePlate},'%')
</if>
<if test="query.lotIds != null and query.lotIds.size()>0">
AND tpr.parking_lot_id IN
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
index d9b3c8d..6288179 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
@@ -73,18 +73,13 @@
public R<AccountListVO> accountBillList(@RequestBody ChargingListQuery dto) {
AccountListVO accountListVO = new AccountListVO();
ChargingBillVO res = chargingBillService.chargingBillList1(dto);
-
- ChargingBillVO res1 = chargingBillService.chargingBillList1(dto);
- List<ChargingBillListVO> records = res1.getList().getRecords();
+ List<ChargingBillListVO> records = res.getList().getRecords();
accountListVO.setBillCount(records.size());
- accountListVO.setTotalAmount(
- res1.getPaymentAmount().subtract(res1.getRefundAmount()==null?BigDecimal.ZERO:res1.getRefundAmount())
- .subtract(res1.getCommissionAmount()==null?BigDecimal.ZERO:res1.getCommissionAmount())
- .subtract(res1.getSharingAmount()==null?BigDecimal.ZERO:res1.getSharingAmount()));
- accountListVO.setPaymentAmount(res1.getPaymentAmount());
- accountListVO.setRefundAmount(res1.getRefundAmount());
- accountListVO.setCommissionAmount(res1.getCommissionAmount());
- accountListVO.setSharingAmount(res1.getSharingAmount());
+ accountListVO.setTotalAmount(res.getOrderAmount());
+ accountListVO.setPaymentAmount(res.getPaymentAmount());
+ accountListVO.setRefundAmount(res.getRefundAmount());
+ accountListVO.setCommissionAmount(res.getCommissionAmount());
+ accountListVO.setSharingAmount(res.getSharingAmount());
accountListVO.setList(res.getList());
return R.ok(accountListVO);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 429e443..6dc6368 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -248,7 +248,7 @@
@ResponseBody
@GetMapping(value = "/pay/order/charging")
@ApiOperation(value = "充电信息", tags = {"管理后台-支付订单-订单信息"})
- public R refundDetail(Long orderId) {
+ public R<PayOrderChargingInfo> refundDetail(Long orderId) {
PayOrderChargingInfo payOrderChargingInfo = new PayOrderChargingInfo();
TChargingOrder byId = chargingOrderService.getById(orderId);
List<Site> data = siteClient.getSiteByIds(Collections.singletonList(byId.getSiteId())).getData();
@@ -261,7 +261,20 @@
List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData();
payOrderChargingInfo.setCarNum(data3.get(0).getLicensePlate());
}
- return R.ok();
+ payOrderChargingInfo.setTChargingOrder(byId);
+
+ Long count = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId).count();
+ payOrderChargingInfo.setPeriodCount(count);
+ if (byId.getAppUserCarId()!=null) {
+ List<Long> carid = new ArrayList<>();
+ carid.add(byId.getAppUserCarId());
+ R<List<TAppUserCar>> carByIds = appUserCarClient.getCarByIds(carid);
+ payOrderChargingInfo.setCarNum(carByIds.getData().get(0).getLicensePlate());
+ }
+ payOrderChargingInfo.setStartTime(byId.getStartTime());
+ payOrderChargingInfo.setEndTime(byId.getEndTime());
+ payOrderChargingInfo.setTimeCount(payOrderChargingInfo.calculateDuration());
+ return R.ok(payOrderChargingInfo);
}
@ResponseBody
@@ -315,10 +328,10 @@
TChargingOrder byId = chargingOrderService.getById(strategyId);
ChargingOrderInfoVO chargingOrderInfoVO = new ChargingOrderInfoVO();
- chargingOrderInfoVO.setCdElectronic(byId.getCurrent()!=null?byId.getCurrent()+"":"");
- chargingOrderInfoVO.setCdVoltage(byId.getVoltage()!=null?byId.getVoltage()+"":"");
- chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity()+"":"");
- chargingOrderInfoVO.setTotalPower(byId.getPower()!=null?byId.getPower()+"":"");
+ chargingOrderInfoVO.setCdElectronic(byId.getCurrent()!=null?byId.getCurrent().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
+ chargingOrderInfoVO.setCdVoltage(byId.getVoltage()!=null?byId.getVoltage().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
+ chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
+ chargingOrderInfoVO.setTotalPower(byId.getPower()!=null?byId.getPower().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
if (byId.getAppUserCarId()!=null){
List<TAppUserCar> data = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData();
if (!data.isEmpty()){
@@ -331,16 +344,20 @@
// 时段总服务费
BigDecimal bigDecimal = new BigDecimal("0");
List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, strategyId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list();
+
for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : list) {
+ if (byId.getVipDiscountAmount()!=null){
+ BigDecimal multiply = byId.getVipDiscountAmount().divide(byId.getServiceCharge(), 2)
+ .multiply(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice());
+ tChargingOrderAccountingStrategy.setVipDiscount(multiply);
+ }
bigDecimal = bigDecimal.add(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice());
- tChargingOrderAccountingStrategy.setVipDiscount(
- tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()
- .subtract(tChargingOrderAccountingStrategy.getPeriodServicePrice())
- );
- tChargingOrderAccountingStrategy.setCouponDiscount(
- tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()
- .subtract(tChargingOrderAccountingStrategy.getPeriodServicePrice())
- );
+
+ if (byId.getCouponDiscountAmount()!=null){
+ BigDecimal multiply = byId.getCouponDiscountAmount().divide(byId.getServiceCharge(), 2)
+ .multiply(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice());
+ tChargingOrderAccountingStrategy.setCouponDiscount(multiply);
+ }
}
chargingOrderInfoVO.setList(list);
return AjaxResult.success(chargingOrderInfoVO);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java
index 0c6b0c9..32db2d9 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java
@@ -2,9 +2,10 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.order.api.model.TChargingOrder;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-
+import java.time.Duration;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -34,4 +35,20 @@
private BigDecimal orderAmount;
@ApiModelProperty(value = "车牌")
private String carNum;
+ private TChargingOrder tChargingOrder;
+ private Long periodCount;
+ private String timeCount;
+ public String calculateDuration() {
+ if (startTime == null || endTime == null) {
+ return "00:00:00";
+ }
+
+ Duration duration = Duration.between(startTime, endTime);
+ long totalSeconds = duration.getSeconds();
+ long hours = totalSeconds / 3600;
+ long minutes = (totalSeconds % 3600) / 60;
+ long seconds = totalSeconds % 60;
+
+ return String.format("%02d:%02d:%02d", hours, minutes, seconds);
+ }
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
index f955e49..99363fb 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -29,8 +29,10 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.time.temporal.TemporalAdjusters;
import java.util.Arrays;
import java.util.List;
@@ -71,7 +73,10 @@
startTime2 = split[1];
}
PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+ PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
List<ChargingBillListVO> list = this.baseMapper.chargingBillList1(pageInfo,dto,startTime1,startTime2);
+ List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList1(pageInfo1,dto,startTime1,startTime2);
+ chargingBillVO.setOrderCount(list1.size());
BigDecimal paymentAmountTotal = new BigDecimal("0");
BigDecimal orderAmountTotal = new BigDecimal("0");
BigDecimal electrovalenceTotal = new BigDecimal("0");
@@ -109,15 +114,20 @@
chargingBillListVO.setUid(chargingBillListVO.getId().toString());
// 根据账单的出账时间 查询上个月的充电订单
- LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
+// LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
+ // todo 临时修改为查询昨天的充电订单
+ LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
// 账单周期
chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
// 获取 LocalDate 对象
LocalDate date = localDate.toLocalDate();
- // 获取该月份的第一天
- LocalDate firstDayOfMonth = date.withDayOfMonth(1);
- // 获取该月份的最后一天
- LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
+// // 获取该月份的第一天
+// 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);
QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
.between("create_time", firstDayOfMonth, lastDayOfMonth)
.eq("status", 5)
@@ -189,7 +199,7 @@
}
BigDecimal add = tChargingOrder.getElectrovalence().add(tChargingOrder.getServiceCharge());
tChargingOrder.setTotalAmount(add.toString());
- tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount().toString());
+ tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0");
UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData();
if (data5!=null){
if (data5.getTime_remaining()!=null){
@@ -226,54 +236,38 @@
}
if (data3!=null)tChargingOrder.setUserName(data3.getName());
// 累加实收金额 支付金额减去退款金额
- if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){
- paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount());
- paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount());
-
- }else if (tChargingOrder.getPaymentAmount()!=null){
+ if (tChargingOrder.getPaymentAmount()!=null){
paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
- paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
}
// 累加订单金额
if (tChargingOrder.getOrderAmount()!=null){
orderAmount = orderAmount.add(tChargingOrder.getOrderAmount());
- orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount());
}
// 累加累计电费
if (tChargingOrder.getElectrovalence()!=null){
electrovalence = electrovalence.add(tChargingOrder.getElectrovalence());
- electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence());
}
- if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() == 2){
+ if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null && tChargingOrder.getRefundStatus()== 2){
refundAmount = refundAmount.add(tChargingOrder.getRefundAmount());
}
// 累加累计服务费
if (tChargingOrder.getServiceCharge()!=null){
serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
- serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge());
}
// 累加平台手续费
- if (tChargingOrder.getCommissionAmount()!=null){
- commissionAmount = commissionAmount.add(tChargingOrder.getCommissionAmount());
- commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getCommissionAmount());
+ if (tChargingOrder.getServiceCharge()!=null){
+ commissionAmount = commissionAmount.add(tChargingOrder.getServiceCharge().multiply(BigDecimal.valueOf(0.006))
+ .setScale(2,RoundingMode.HALF_DOWN));
}
// 累加平台分佣
if (tChargingOrder.getSharingAmount()!=null){
sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
- sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount());
}
// 累加充电度数
if (tChargingOrder.getChargingCapacity()!=null){
chargingCapacity = chargingCapacity.add(tChargingOrder.getChargingCapacity());
- chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getChargingCapacity());
}
- // 累加优惠金额
- if (tChargingOrder.getCouponDiscountAmount()!=null){
- discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount());
- }
- if (tChargingOrder.getVipDiscountAmount()!=null){
- discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount());
- }
+
}
// 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒
int hours = chargingSecond / 3600;
@@ -291,6 +285,7 @@
.subtract(chargingBillVO.getSharingAmount()==null?BigDecimal.ZERO:chargingBillVO.getSharingAmount()));
chargingBillListVO.setPaymentAmount(paymentAmount == null?BigDecimal.ZERO:paymentAmount);
chargingBillListVO.setOrderAmount(orderAmount == null?BigDecimal.ZERO:orderAmount);
+ 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);
@@ -314,6 +309,85 @@
chargingBillListVO.setOrderCount(tChargingOrders.size());
// 充电时间秒
chargingBillListVO.setChargingSecond(chargingSecond);
+ }
+ for (ChargingBillListVO chargingBillListVO : list1) {
+ LocalDateTime billTime = chargingBillListVO.getBillTime();
+ // 将其转化为yyyy-MM格式字符串
+ chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ // 将billTime减去一个月 转化为yyyy-MM格式字符串
+ chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
+
+ chargingBillListVO.setUid(chargingBillListVO.getId().toString());
+// LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
+ // todo 临时修改为查询昨天的充电订单
+ LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
+ // 账单周期
+ chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
+ // 获取 LocalDate 对象
+ LocalDate date = localDate.toLocalDate();
+// // 获取该月份的第一天
+// 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);
+ QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
+ .between("create_time", firstDayOfMonth, lastDayOfMonth)
+ .eq("status", 5)
+ .eq("recharge_payment_status", 2);
+ if (chargingBillListVO.getType() == 2) {
+ eq.eq("site_id", chargingBillListVO.getSiteId());
+ }
+ List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq);
+ orderCount+=tChargingOrders.size();
+ chargingBillVO.setCategory("");
+ chargingBillVO.setExportList(tChargingOrders);
+ for (TChargingOrder tChargingOrder : tChargingOrders) {
+
+ // 累加实收金额 支付金额减去退款金额
+ if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){
+ paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
+
+ }else if (tChargingOrder.getPaymentAmount()!=null){
+ paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
+ }
+ // 累加订单金额
+ if (tChargingOrder.getOrderAmount()!=null){
+ orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount());
+ }
+ // 累加累计电费
+ if (tChargingOrder.getElectrovalence()!=null){
+ electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence());
+ }
+ if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null&& tChargingOrder.getRefundStatus()==2){
+ refundAmount = refundAmount.add(tChargingOrder.getRefundAmount());
+ }
+ // 累加累计服务费
+ if (tChargingOrder.getServiceCharge()!=null){
+ serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge());
+ }
+ // 累加平台手续费
+ if (tChargingOrder.getServiceCharge()!=null){
+ commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.006")));
+ }
+ // 累加平台分佣
+ if (tChargingOrder.getSharingAmount()!=null){
+ sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount());
+ }
+ // 累加充电度数
+ if (tChargingOrder.getElectricity()!=null){
+
+ chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getElectricity());
+ }
+ // 累加优惠金额
+ if (tChargingOrder.getCouponDiscountAmount()!=null){
+ discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount());
+ }
+ if (tChargingOrder.getVipDiscountAmount()!=null){
+ discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount());
+ }
+ }
}
chargingBillVO.setChargingCapacity(chargingCapacityTotal);
chargingBillVO.setPaymentAmount(paymentAmountTotal);
@@ -341,7 +415,9 @@
startTime2 = split[1];
}
PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+ PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2);
+ List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList(pageInfo1,dto,startTime1,startTime2);
BigDecimal paymentAmountTotal = new BigDecimal("0");
BigDecimal orderAmountTotal = new BigDecimal("0");
BigDecimal electrovalenceTotal = new BigDecimal("0");
@@ -379,15 +455,20 @@
chargingBillListVO.setUid(chargingBillListVO.getId().toString());
// 根据账单的出账时间 查询上个月的充电订单
- LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
+// LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
+ // todo 临时修改为查询昨天的充电订单
+ LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
// 账单周期
chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
// 获取 LocalDate 对象
LocalDate date = localDate.toLocalDate();
- // 获取该月份的第一天
- LocalDate firstDayOfMonth = date.withDayOfMonth(1);
- // 获取该月份的最后一天
- LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
+// // 获取该月份的第一天
+// 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);
QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
.between("create_time", firstDayOfMonth, lastDayOfMonth)
.eq("status", 5)
@@ -497,22 +578,18 @@
if (data3!=null)tChargingOrder.setUserName(data3.getName());
// 累加实收金额 支付金额减去退款金额
if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){
- paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount());
- paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount());
+ paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
}else if (tChargingOrder.getPaymentAmount()!=null){
paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
- paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
}
// 累加订单金额
if (tChargingOrder.getOrderAmount()!=null){
orderAmount = orderAmount.add(tChargingOrder.getOrderAmount());
- orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount());
}
// 累加累计电费
if (tChargingOrder.getElectrovalence()!=null){
electrovalence = electrovalence.add(tChargingOrder.getElectrovalence());
- electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence());
}
if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() !=null && tChargingOrder.getRefundStatus() == 2){
refundAmount = refundAmount.add(tChargingOrder.getRefundAmount());
@@ -520,29 +597,18 @@
// 累加累计服务费
if (tChargingOrder.getServiceCharge()!=null){
serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
- serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge());
}
// 累加平台手续费
- if (tChargingOrder.getCommissionAmount()!=null){
- commissionAmount = commissionAmount.add(tChargingOrder.getCommissionAmount());
- commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getCommissionAmount());
+ if (tChargingOrder.getServiceCharge()!=null){
+ commissionAmount = commissionAmount.add(tChargingOrder.getServiceCharge().multiply(BigDecimal.valueOf(0.006)).setScale(2,RoundingMode.HALF_DOWN));
}
// 累加平台分佣
if (tChargingOrder.getSharingAmount()!=null){
sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
- sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount());
}
// 累加充电度数
if (tChargingOrder.getChargingCapacity()!=null){
chargingCapacity = chargingCapacity.add(tChargingOrder.getChargingCapacity());
- chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getChargingCapacity());
- }
- // 累加优惠金额
- if (tChargingOrder.getCouponDiscountAmount()!=null){
- discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount());
- }
- if (tChargingOrder.getVipDiscountAmount()!=null){
- discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount());
}
}
// 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒
@@ -556,7 +622,7 @@
chargingBillListVO.setPaymentAmount(paymentAmount);
chargingBillListVO.setOrderAmount(orderAmount);
chargingBillListVO.setElectrovalence(electrovalence);
- chargingBillListVO.setServiceCharge(serviceCharge);
+ chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN));
chargingBillListVO.setCommissionAmount(commissionAmount);
chargingBillListVO.setSharingAmount(sharingAmount);
chargingBillListVO.setChargingCapacity(chargingCapacity);
@@ -576,6 +642,98 @@
// 充电时间秒
chargingBillListVO.setChargingSecond(chargingSecond);
}
+ for (ChargingBillListVO chargingBillListVO : list1) {
+ LocalDateTime billTime = chargingBillListVO.getBillTime();
+ // 将其转化为yyyy-MM格式字符串
+ chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ // 将billTime减去一个月 转化为yyyy-MM格式字符串
+ chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
+
+ chargingBillListVO.setUid(chargingBillListVO.getId().toString());
+ // 根据账单的出账时间 查询上个月的充电订单
+// LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1);
+ // todo 临时修改为查询昨天的充电订单
+ LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1);
+ // 账单周期
+ chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM")));
+ // 获取 LocalDate 对象
+ LocalDate date = localDate.toLocalDate();
+// // 获取该月份的第一天
+// 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);
+ QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
+ .between("create_time", firstDayOfMonth, lastDayOfMonth)
+ .eq("status", 5)
+ .eq("recharge_payment_status", 2);
+ if (chargingBillListVO.getType() == 2) {
+ eq.eq("site_id", chargingBillListVO.getSiteId());
+ }
+ List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq);
+ int chargingSecond = 0;
+ BigDecimal paymentAmount = new BigDecimal("0");
+ BigDecimal orderAmount = new BigDecimal("0");
+ BigDecimal electrovalence = new BigDecimal("0");
+ BigDecimal serviceCharge = new BigDecimal("0");
+ BigDecimal commissionAmount = new BigDecimal("0");
+ BigDecimal sharingAmount = new BigDecimal("0");
+ BigDecimal chargingCapacity = new BigDecimal("0");
+ orderCount+=tChargingOrders.size();
+ for (TChargingOrder tChargingOrder : tChargingOrders) {
+ // 累加实收金额 支付金额减去退款金额
+ if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){
+ paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
+ paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
+
+ }else if (tChargingOrder.getPaymentAmount()!=null){
+ paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
+ paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
+ }
+ // 累加订单金额
+ if (tChargingOrder.getOrderAmount()!=null){
+ orderAmount = orderAmount.add(tChargingOrder.getOrderAmount());
+ orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount());
+ }
+ // 累加累计电费
+ if (tChargingOrder.getElectrovalence()!=null){
+ electrovalence = electrovalence.add(tChargingOrder.getElectrovalence());
+ electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence());
+ }
+ if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() !=null && tChargingOrder.getRefundStatus() == 2){
+ refundAmount = refundAmount.add(tChargingOrder.getRefundAmount());
+ }
+ // 累加累计服务费
+ if (tChargingOrder.getServiceCharge()!=null){
+ serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
+ 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.getSharingAmount()!=null){
+ sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
+ sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount());
+ }
+ // 累加充电度数
+ if (tChargingOrder.getElectricity()!=null){
+ chargingCapacity = chargingCapacity.add(tChargingOrder.getElectricity());
+ chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getElectricity());
+ }
+ // 累加优惠金额
+ if (tChargingOrder.getCouponDiscountAmount()!=null){
+ discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount());
+ }
+ if (tChargingOrder.getVipDiscountAmount()!=null){
+ discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount());
+ }
+ }
+ }
chargingBillVO.setChargingCapacity(chargingCapacityTotal);
chargingBillVO.setPaymentAmount(paymentAmountTotal);
chargingBillVO.setOrderAmount(orderAmountTotal);
@@ -585,8 +743,6 @@
chargingBillVO.setCommissionAmount(commissionAmountTotal);
chargingBillVO.setSharingAmount(sharingAmountTotal);
chargingBillVO.setDiscount(discountTotal);
-
-
pageInfo.setRecords(list);
chargingBillVO.setList(pageInfo);
return chargingBillVO;
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index caa7495..87c895b 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -889,57 +889,48 @@
//处理用户标签数据
List<TUserTag> data = userTagClient.getAllUserTag().getData();
//累计充电次数
- long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
- .eq(TChargingOrder::getRechargePaymentStatus, 2).isNotNull(TChargingOrder::getPaymentAmount).eq(TChargingOrder::getDelFlag, 0));
List<TUserTag> userTagList1 = data.stream().filter(s -> s.getStandardCondition() == 1).collect(Collectors.toList());
- int old_times = 0;
- Integer userTagId = null;
for (TUserTag tUserTag : userTagList1) {
Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
- //加上本次充电
- //获取最大值标签
- if((count1 + 1) >= times && old_times < times){
- userTagId = tUserTag.getId();
- old_times = times;
- }
- }
- if(null != userTagId){
TAppUserTag appUserTag = new TAppUserTag();
appUserTag.setAppUserId(chargingOrder.getAppUserId());
- appUserTag.setUserTagId(userTagId);
+ appUserTag.setUserTagId(tUserTag.getId());
TAppUserTag data1 = appUserTagClient.getUserTag(appUserTag).getData();
- if(null == data1){
+
+ String start = tUserTag.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ String end = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
+ .eq(TChargingOrder::getRechargePaymentStatus, 2).between(TChargingOrder::getStartTime, start, end).eq(TChargingOrder::getDelFlag, 0));
+ if(null == data1 && count1 >= times){
data1 = new TAppUserTag();
data1.setAppUserId(chargingOrder.getAppUserId());
- data1.setUserTagId(userTagId);
+ data1.setUserTagId(tUserTag.getId());
data1.setCreateTime(LocalDateTime.now());
appUserTagClient.addUserTag(data1);
}
}
- //充电评率
+ //充电频率
List<TUserTag> userTagList2 = data.stream().filter(s -> s.getStandardCondition() == 2).collect(Collectors.toList());
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (TUserTag tUserTag : userTagList2) {
TAppUserTag appUserTag = new TAppUserTag();
appUserTag.setAppUserId(chargingOrder.getAppUserId());
appUserTag.setUserTagId(tUserTag.getId());
TAppUserTag data1 = appUserTagClient.getUserTag(appUserTag).getData();
- if(null == data1){
- Integer day = JSON.parseObject(tUserTag.getConditions()).getInteger("day");
- Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
- Calendar start = Calendar.getInstance();
- start.set(Calendar.DAY_OF_YEAR, start.get(Calendar.DAY_OF_YEAR) + day);
- count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
- .eq(TChargingOrder::getRechargePaymentStatus, 2).isNotNull(TChargingOrder::getPaymentAmount)
- .between(TChargingOrder::getStartTime, sdf.format(start.getTime()), sdf.format(new Date())).eq(TChargingOrder::getDelFlag, 0));
- //加上本次充电
- if(count1 >= times){
- data1 = new TAppUserTag();
- data1.setAppUserId(chargingOrder.getAppUserId());
- data1.setUserTagId(tUserTag.getId());
- data1.setCreateTime(LocalDateTime.now());
- appUserTagClient.addUserTag(data1);
- }
+
+ Integer day = JSON.parseObject(tUserTag.getConditions()).getInteger("day");
+ Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
+ LocalDateTime endTime = LocalDateTime.now();
+ endTime.plusDays(day);
+ String start = tUserTag.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ String end = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
+ .eq(TChargingOrder::getRechargePaymentStatus, 2).between(TChargingOrder::getStartTime, start, end).eq(TChargingOrder::getDelFlag, 0));
+ if(null == data1 && count1 >= times){
+ data1 = new TAppUserTag();
+ data1.setAppUserId(chargingOrder.getAppUserId());
+ data1.setUserTagId(tUserTag.getId());
+ data1.setCreateTime(LocalDateTime.now());
+ appUserTagClient.addUserTag(data1);
}
}
}
@@ -1073,6 +1064,7 @@
endTime2 = split[1];
}
PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+ PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999);
if (StringUtils.hasLength(dto.getPhone())){
List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
@@ -1083,12 +1075,15 @@
dto.setUserIds(data);
}
List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
+ List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2);
BigDecimal total = new BigDecimal("0");
long time = 0L;
BigDecimal income = new BigDecimal("0");
BigDecimal electronicMoney = new BigDecimal("0");
BigDecimal serviceMoney = new BigDecimal("0");
for (ChargingOrderVO chargingOrderVO : list) {
+ chargingOrderVO.setCommissionAmount(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
+ chargingOrderVO.setPlatFormMoney(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
chargingOrderVO.setUid(chargingOrderVO.getId()+"");
TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
@@ -1100,10 +1095,6 @@
}
if (data2!=null && data3!=null){
chargingOrderVO.setTerminalName(data2.getName()+"-"+data3.getName());
-
- }
- if (chargingOrderVO.getChargingCapacity()!=null){
- total = total.add(chargingOrderVO.getElectricity());
}
// 充电订单 明细记录
List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
@@ -1112,14 +1103,6 @@
if (data5!=null){
long l = data5.getCumulative_charging_time() * 60L;
chargingOrderVO.setChargingSecond(l);
- time+=l;
- }
- electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
- serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
-
- income = income.add(chargingOrderVO.getServiceCharge().add(chargingOrderVO.getElectrovalence()));
- if (chargingOrderVO.getRefundAmount()!=null){
- income = income.subtract(chargingOrderVO.getRefundAmount());
}
// 充电时段数
int size = chargingOrderId.size();
@@ -1139,6 +1122,27 @@
}
}
+ }
+ for (ChargingOrderVO chargingOrderVO : list1) {
+ if (chargingOrderVO.getChargingCapacity()!=null){
+ total = total.add(chargingOrderVO.getElectricity());
+ }
+ // 充电订单 明细记录
+ List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
+ .eq("charging_order_id", chargingOrderVO.getId()));
+ UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
+ if (data5!=null){
+ long l = data5.getCumulative_charging_time() * 60L;
+ chargingOrderVO.setChargingSecond(l);
+ time+=l;
+ }
+ electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
+ serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
+
+ income = income.add(chargingOrderVO.getOrderAmount());
+
+
+
}
tCharingOrderVO.setTotal(total);
tCharingOrderVO.setTime(time);
@@ -1252,7 +1256,7 @@
dto.setUserIds(carIds);
}
}
- if (StringUtils.hasLength(dto.getPhone())){
+ if (StringUtils.hasLength(dto.getLicensePlate())){
List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData();
if(data!=null){
if (!data.isEmpty()){
@@ -1270,6 +1274,12 @@
PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
for (ChargingOrderListVO chargingOrderListVO : list) {
+ chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
+ chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getOrderAmount());
+ BigDecimal bigDecimal = new BigDecimal("0.006");
+ if (chargingOrderListVO.getServiceCharge()!=null){
+ chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getServiceCharge().multiply(bigDecimal));
+ }
chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount().subtract(chargingOrderListVO.getResidualAmount()));
chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
List<Integer> integers = new ArrayList<>();
@@ -1327,6 +1337,9 @@
BigDecimal gu = new BigDecimal("0");
BigDecimal total = new BigDecimal("0");
for (TChargingOrderAccountingStrategy temp : list2) {
+ if (temp.getChargingCapacity() == null){
+ temp.setChargingCapacity(BigDecimal.ZERO);
+ }
switch (temp.getType()) {
case 1:
jian = jian.add(temp.getChargingCapacity());
@@ -1387,9 +1400,9 @@
BigDecimal ping = new BigDecimal("0");
BigDecimal gu = new BigDecimal("0");
for (ChargingOrderListVO chargingOrderListVO : list1) {
- if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getChargingCapacity());
+ if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity());
- if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
+ if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getOrderAmount());
if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence());
if (chargingOrderListVO.getServiceCharge()!=null)serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery()
@@ -1476,6 +1489,12 @@
TChargingOrder chargingOrder= this.getById(uid);
ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO();
+
+ chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
+ BigDecimal bigDecimal = new BigDecimal("0.006");
+ if (chargingOrder.getServiceCharge()!=null){
+ chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getServiceCharge().multiply(bigDecimal));
+ }
chargingOrderListInfoVO.setElectrovalence(chargingOrder.getElectrovalence());
chargingOrderListInfoVO.setServiceCharge(chargingOrder.getServiceCharge());
if (chargingOrder.getElectrovalence()!=null && chargingOrder.getServiceCharge()!=null){
@@ -1515,6 +1534,13 @@
if (chargingOrder.getCode()!=null){
List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
if (data6!=null){
+ for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
+ if (uploadRealTimeMonitoringData.getOutput_current()!=null&&
+ uploadRealTimeMonitoringData.getOutput_voltage()!=null){
+ uploadRealTimeMonitoringData.setPower(uploadRealTimeMonitoringData.getOutput_voltage()
+ .multiply(uploadRealTimeMonitoringData.getOutput_current()));
+ }
+ }
if (!data6.isEmpty()){
// 第一条数据soc为开始 最后一条数据soc为结束soc
chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString());
@@ -1782,6 +1808,9 @@
order.setCouponDiscountAmount(couponDiscountAmount);
payAmount = payAmount.subtract(couponDiscountAmount);
}
+
+ appCoupon.setStatus(2);
+ appCouponClient.updateAppCoupon(appCoupon);
}else{
order.setAppCouponId(null);
order.setCouponDiscountAmount(BigDecimal.ZERO);
@@ -1804,6 +1833,9 @@
order.setCouponDiscountAmount(divide);
payAmount = payAmount.subtract(divide);
}
+
+ appCoupon.setStatus(2);
+ appCouponClient.updateAppCoupon(appCoupon);
}else{
order.setAppCouponId(null);
order.setCouponDiscountAmount(BigDecimal.ZERO);
@@ -2592,12 +2624,13 @@
info.setRefundAmount(chargingOrder.getRefundAmount());
LocalDateTime startTime = chargingOrder.getStartTime();
LocalDateTime endTime = chargingOrder.getEndTime();
- info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
+ info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " " + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
info.setStartHour(startTime.format(DateTimeFormatter.ofPattern("HH:mm")));
- info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
+ info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " " + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
info.setEndHour(endTime.format(DateTimeFormatter.ofPattern("HH:mm")));
- int hour = endTime.getHour() - startTime.getHour();
- int second = endTime.getMinute() - startTime.getMinute();
+ long time = (endTime.toEpochSecond(ZoneOffset.UTC) - startTime.toEpochSecond(ZoneOffset.UTC)) / 60;
+ long hour = time / 60;
+ long second = time % 60;
info.setDuration(0 == hour ? String.format("%s分钟", second) : String.format("%s小时%s分钟", hour, second));
return info;
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
index 544e9ff..e294a86 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java
@@ -76,6 +76,7 @@
TShoppingOrder tShoppingOrder = shoppingOrders.stream().filter(shoppingOrder -> shoppingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null);
setGoodsInfo(item,tShoppingOrder);
}
+ item.setOrderIdStr(item.getOrderId().toString());
});
list.forEach(e->e.setUid(e.getId().toString()));
pageInfo.setRecords(list);
@@ -98,6 +99,7 @@
TShoppingOrder tShoppingOrder = shoppingOrderMapper.selectById(orderAppeal.getOrderId());
setGoodsInfo(orderAppealVO,tShoppingOrder);
}
+ orderAppealVO.setOrderIdStr(orderAppealVO.getOrderId().toString());
return orderAppealVO;
}
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 a3e47c7..dba9058 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
@@ -162,9 +162,11 @@
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 " + pageCurr + ", " + 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();
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
index 7f8b25f..05e1997 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -102,7 +102,10 @@
PageInfo<TActivityStatisticslVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+ PageInfo<TActivityStatisticslVO> pageInfo1 = new PageInfo<>(1,9999999);
List<TActivityStatisticslVO> list = this.baseMapper.activityStatistics(pageInfo,dto);
+ List<TActivityStatisticslVO> list1 = this.baseMapper.activityStatistics(pageInfo1,dto);
+
list.sort((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime()));
// 优惠券金额
BigDecimal coupon = new BigDecimal("0");
@@ -113,7 +116,76 @@
// 赠送会员
BigDecimal grantVip = new BigDecimal("0");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ for (TActivityStatisticslVO tActivityStatisticslVO : list1) {
+ // 判断享有了哪些类型
+ switch (tActivityStatisticslVO.getOrderType()){
+ case 1:
+ StringBuilder stringBuilder = new StringBuilder();
+ // 充电订单 优惠券金额大于0
+ if (tActivityStatisticslVO.getCouponDiscountAmount()!=null
+ &&
+ (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+ coupon = coupon.add(tActivityStatisticslVO.getCouponDiscountAmount());
+ stringBuilder.append("优惠券抵扣").append("+");
+ }
+ if (tActivityStatisticslVO.getVipDiscountAmount()!=null &&(tActivityStatisticslVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+ discount = discount.add(tActivityStatisticslVO.getVipDiscountAmount());
+ stringBuilder.append("会员抵扣").append("+");
+ }
+ if (stringBuilder.length()>0){
+ stringBuilder.deleteCharAt(stringBuilder.length()-1);
+ tActivityStatisticslVO.setType(stringBuilder.toString());
+ }
+ tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
+ break;
+ case 2:
+ StringBuilder stringBuilder1 = new StringBuilder();
+
+ // 购物订单 优惠券金额大于0
+ if (tActivityStatisticslVO.getCouponDiscountAmount()!=null
+ &&
+ (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+ coupon = coupon.add(tActivityStatisticslVO.getCouponDiscountAmount());
+ stringBuilder1.append("优惠券抵扣").append("+");
+ }
+ if (tActivityStatisticslVO.getVipDiscountAmount()!=null
+ &&
+ (tActivityStatisticslVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+ discount = discount.add(tActivityStatisticslVO.getVipDiscountAmount());
+ stringBuilder1.append("会员抵扣").append("+");
+ }
+ if (stringBuilder1.length()>0){
+ stringBuilder1.deleteCharAt(stringBuilder1.length()-1);
+ }
+ tActivityStatisticslVO.setType(stringBuilder1.toString());
+ tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
+ break;
+ case 3:
+ // 会员订单 优惠金额大于0
+ if (tActivityStatisticslVO.getVipDiscountAmount()!=null
+ &&
+ (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+ vipActivity = vipActivity.add(tActivityStatisticslVO.getVipDiscountAmount());
+ }
+ tActivityStatisticslVO.setType("会员活动");
+ tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
+ break;
+ case 4:
+ // 赠送会员订单 如果支付金额为0 那么就是后台赠送的会员
+ if (tActivityStatisticslVO.getPaymentAmount().compareTo(BigDecimal.ZERO)==0){
+ grantVip = grantVip.add(tActivityStatisticslVO.getOrderAmount());
+ tActivityStatisticslVO.setType("赠送会员");
+ tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
+ }else{
+ // 赠送
+ grantVip = grantVip.add(tActivityStatisticslVO.getVipDiscountAmount());
+ tActivityStatisticslVO.setType("赠送会员");
+ tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
+ }
+ break;
+ }
+ }
for (TActivityStatisticslVO tActivityStatisticslVO : list) {
// 判断享有了哪些类型
switch (tActivityStatisticslVO.getOrderType()){
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
index fdd88a3..a1e684f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -49,9 +49,9 @@
@Scheduled(cron = "0 0 12 1 * ?")
+//@Scheduled(fixedRate = 60000)
public void taskMonth() {
try {
- System.err.println("执行定时任务生成账单");
// 获取上个月的开始和结束日期
LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1).
withDayOfMonth(2);
@@ -71,33 +71,70 @@
tChargingBill.setBillTime(LocalDateTime.now());
tChargingBill.setStatus(1);
tChargingBill.setOrderState(2);
+ tChargingBill.setBillType(1);
+ System.err.println("定时任务生成充电算帐单:全站");
chargingBillService.save(tChargingBill);
- // 每月二号给每个站点生成上月账单
+ // 生成一次全站订单
+ TChargingBill tChargingBill1 = new TChargingBill();
+ // 订单生成规则JSD+20231201(账单所属月份)+1131304205(随机10位数)+001(当月账单序号,每月重置)
+ Random random1 = new Random();
+ String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9
+ .mapToObj(String::valueOf)
+ .collect(Collectors.joining()); // 将其连接成一个字符串
+ tChargingBill1.setCode("JSD"+string+randomDigits1 );
+ tChargingBill1.setType(1);
+ tChargingBill1.setSiteId(0);
+ tChargingBill1.setBillTime(LocalDateTime.now());
+ tChargingBill1.setStatus(1);
+ tChargingBill1.setOrderState(2);
+ tChargingBill1.setBillType(2);
+ System.err.println("定时任务生成账户结算帐单:全站");
+ chargingBillService.save(tChargingBill1);
+ System.err.println("定时任务生成各个站点结算帐单");
List<Integer> collect = siteClient.getSiteAll().getData().stream().map(Site::getId).collect(Collectors.toList());
+ // 充电算帐单
List<TChargingBill> tChargingBills = new ArrayList<>();
+ // 账户结算账单
+ List<TChargingBill> tChargingBills1 = new ArrayList<>();
for (int i = 0; i < collect.size(); i++) {
- TChargingBill tChargingBill1 = new TChargingBill();
- Random random1 = new Random();
- String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9
+ TChargingBill tChargingBill2 = new TChargingBill();
+ Random random2 = new Random();
+ String randomDigits2 = random2.ints(10, 0, 10) // 生成10个随机数字,范围在0-9
.mapToObj(String::valueOf)
.collect(Collectors.joining()); // 将其连接成一个字符串
- tChargingBill1.setCode("JSD"+string+randomDigits1+(i+1) );
- tChargingBill1.setType(2);
- tChargingBill1.setSiteId(collect.get(i));
- tChargingBill1.setBillTime(LocalDateTime.now());
- tChargingBill1.setStatus(1);
- tChargingBill1.setOrderState(2);
- tChargingBills.add(tChargingBill1);
+ tChargingBill2.setCode("JSD"+string+randomDigits2+(i+1) );
+ tChargingBill2.setType(2);
+ tChargingBill2.setSiteId(collect.get(i));
+ tChargingBill2.setBillTime(LocalDateTime.now());
+ tChargingBill2.setBillType(1);
+ tChargingBill2.setStatus(1);
+ tChargingBill2.setOrderState(2);
+ tChargingBills.add(tChargingBill2);
+ TChargingBill tChargingBill3 = new TChargingBill();
+ Random random3 = new Random();
+ String randomDigits3 = random3.ints(10, 0, 10) // 生成10个随机数字,范围在0-9
+ .mapToObj(String::valueOf)
+ .collect(Collectors.joining()); // 将其连接成一个字符串
+ tChargingBill3.setCode("JSD"+string+randomDigits3+(i+1) );
+ tChargingBill3.setType(2);
+ tChargingBill3.setSiteId(collect.get(i));
+ tChargingBill3.setBillTime(LocalDateTime.now());
+ tChargingBill3.setBillType(1);
+ tChargingBill3.setStatus(1);
+ tChargingBill3.setOrderState(2);
+ tChargingBills1.add(tChargingBill3);
}
System.err.println("列表"+tChargingBills);
if (!tChargingBills.isEmpty())chargingBillService.saveBatch(tChargingBills);
+ if (!tChargingBills1.isEmpty())chargingBillService.saveBatch(tChargingBills1);
} catch (Exception e) {
e.printStackTrace();
}
}
- // 每个月最后一天23点执行的定时任务
- @Scheduled(cron = "0 0 12 1 * ?")
+
+ // 每天晚上23:59:59执行的定时任务
+ @Scheduled(cron = "0 0 23 1 * ?")
public void taskLastDay() {
try {
// 获取上个月的开始和结束日期
@@ -110,10 +147,10 @@
LocalDateTime endDateTime = lastDayOfLastMonth.atTime(23, 59, 59); // 设定到最后一秒
// 构建查询条件
LambdaQueryWrapper<TChargingBill> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.ge(TChargingBill::getBillTime,
- Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()))
- .le(TChargingBill::getBillTime,
- Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant())); // 使用 le 包括最后一天的记录
+// queryWrapper.ge(TChargingBill::getBillTime,
+// Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()))
+// .le(TChargingBill::getBillTime,
+// Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant())); // 使用 le 包括最后一天的记录
List<TChargingBill> list = chargingBillService.list(queryWrapper);
for (TChargingBill tChargingBill : list) {
tChargingBill.setStatus(2);
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 8a0d431..1b22fd9 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -92,6 +92,9 @@
<if test="req.status != null ">
and t1.status = #{req.status}
</if>
+ <if test="req.orderSource != null and req.orderSource != 1 ">
+ and t1.orderSource = #{req.orderSource}
+ </if>
<if test="req.siteId != null ">
and t1.site_id = #{req.siteId}
</if>
@@ -108,6 +111,7 @@
and (t1.end_time between #{endTime1} and #{endTime2})
</if>
and t1.del_flag = 0
+ order by t1.create_time desc
</select>
<select id="payOrderQuery" resultType="com.ruoyi.order.dto.PayOrderDto">
SELECT o.*,i.phone FROM (SELECT
@@ -873,6 +877,9 @@
<if test="endTime1 != null and endTime1!=''">
and (t1.end_time between #{endTime1} and #{endTime2})
</if>
+ AND t1.del_flag = 0
+ and t1.start_time IS NOT NULL
+ order by t1.create_time desc
</select>
<select id="chargingListNoPage" resultType="com.ruoyi.order.api.vo.ChargingOrderListVO">
select t1.* from t_charging_order t1
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
index af162fb..53be1bb 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -2,11 +2,15 @@
import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.account.api.dto.SendCouponDto;
import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.feignClient.AppUserVipDetailClient;
import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserVipDetail;
+import com.ruoyi.account.api.vo.GetAppUserVipDetail;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
@@ -222,6 +226,9 @@
@Resource
private AppUserClient appUserClient;
+ @Resource
+ private AppUserVipDetailClient vipDetailClient;
+
@ApiOperation(value = "当前生效会员信息", tags = {"小程序-个人中心"})
@GetMapping("/recent/vipInfo")
public R<List<VipInfoDto>> recentVipInfo() {
@@ -230,7 +237,16 @@
if (data.getVipEndTime()!=null&&data.getVipEndTime().isAfter(LocalDateTime.now())) {
List<VipInfoDto> vipInfoDtos = new ArrayList<>();
- List<TVip> vips = vipService.lambdaQuery().eq(TVip::getId, data.getVipId()).list();
+
+// List<TVip> vips = vipService.lambdaQuery().eq(TVip::getId, data.getVipId()).list();
+ List<TVip> vips = new ArrayList<>();
+ GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+ getAppUserVipDetail.setAppUserId(userId);
+ getAppUserVipDetail.setVipId(data.getVipId());
+ TAppUserVipDetail data1 = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
+ String vipJson = data1.getVipJson();
+ TVip tVip = JSON.parseObject(vipJson, TVip.class);
+ vips.add(tVip);
LocalDateTime now = LocalDateTime.now();
for (TVip vip : vips) {
VipInfoDto vipInfoDto = new VipInfoDto();
@@ -255,19 +271,20 @@
vipInfoDto.setMallExclusivePrice(vip.getMallExclusivePrice());
vipInfoDto.setName(vip.getName());
vipInfoDto.setId(vip.getId());
- List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class);
- List<VipCouponDto> vipCouponDtos = new ArrayList<>();
- if (!javaList.isEmpty()) {
- for (SendCouponDto sendCouponDto : javaList) {
- VipCouponDto vipCouponDto = new VipCouponDto();
- TCoupon byId = couponService.getById(sendCouponDto.getId());
- vipCouponDto.setNum(sendCouponDto.getNumber());
- vipCouponDto.setTCoupon(byId);
- vipCouponDtos.add(vipCouponDto);
+ if (vip.getCoupon()!=null) {
+ List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class);
+ List<VipCouponDto> vipCouponDtos = new ArrayList<>();
+ if (!javaList.isEmpty()) {
+ for (SendCouponDto sendCouponDto : javaList) {
+ VipCouponDto vipCouponDto = new VipCouponDto();
+ TCoupon byId = couponService.getById(sendCouponDto.getId());
+ vipCouponDto.setNum(sendCouponDto.getNumber());
+ vipCouponDto.setTCoupon(byId);
+ vipCouponDtos.add(vipCouponDto);
+ }
}
- }
- vipInfoDto.setVipCouponDtos(vipCouponDtos);
+ vipInfoDto.setVipCouponDtos(vipCouponDtos);
//计算总折扣
BigDecimal total = BigDecimal.ZERO;
@@ -280,9 +297,12 @@
total.add(tCoupon.getDiscountAmount());
}
}
+
vipInfoDto.setTotalDiscount(total);
+
vipInfoDto.setTimeAmount(vip.getMaximumDeduction().multiply(BigDecimal.valueOf(vip.getDiscountTimes())));
vipInfoDtos.add(vipInfoDto);
+ }
}
return R.ok(vipInfoDtos);
--
Gitblit v1.7.1