From e7e74dbb747f05b7d1739498f0dce0fca50cfee7 Mon Sep 17 00:00:00 2001 From: Lemon Date: Mon, 1 Sep 2025 08:38:46 +0800 Subject: [PATCH 01/23] =?UTF-8?q?update=20=E6=B2=B3=E5=8D=97=E7=9C=81?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HeNanPlatformServiceImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/HeNanPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/HeNanPlatformServiceImpl.java index f8d2d5e59..423a12914 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/HeNanPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/HeNanPlatformServiceImpl.java @@ -206,6 +206,18 @@ public class HeNanPlatformServiceImpl implements ThirdPartyPlatformService { if (construction == 12) { construction = 23; } + if (construction == 24) { + // 国(省)道公路沿线 + construction = 21; + } + if (construction == 25) { + // 城际快速公路沿线 + construction = 22; + } + if (construction == 26) { + // 景区停车场 + construction = 23; + } stationInfo.setConstruction(construction); // 停车费率描述 if (StringUtils.isNotBlank(pileStationInfo.getParkFeeDescribe())) { From 53a7b70ee399e0b9a4be409f771fdf6c5194e589 Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 5 Sep 2025 10:21:56 +0800 Subject: [PATCH 02/23] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BF=9D=E9=99=A9=E4=BF=A1=E6=81=AF=E7=9B=B8=E5=85=B3=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=E3=80=81Service=E3=80=81Mapper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/domain/OrderInsuranceInfo.java | 101 ++++++++++++++++++ .../com/jsowell/pile/dto/PayOrderDTO.java | 5 + .../pile/dto/PayOrderSuccessCallbackDTO.java | 5 + .../pile/mapper/OrderInsuranceInfoMapper.java | 63 +++++++++++ .../service/IOrderInsuranceInfoService.java | 61 +++++++++++ .../impl/OrderInsuranceInfoServiceImpl.java | 90 ++++++++++++++++ .../mapper/pile/OrderInsuranceInfoMapper.xml | 86 +++++++++++++++ 7 files changed, 411 insertions(+) create mode 100644 jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderInsuranceInfo.java create mode 100644 jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInsuranceInfoMapper.java create mode 100644 jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInsuranceInfoService.java create mode 100644 jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java create mode 100644 jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderInsuranceInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderInsuranceInfo.java new file mode 100644 index 000000000..784375354 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderInsuranceInfo.java @@ -0,0 +1,101 @@ +package com.jsowell.pile.domain; + +import java.math.BigDecimal; + +import com.jsowell.common.annotation.Excel; +import com.jsowell.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 订单保险信息对象 order_insurance_info + * + * @author jsowell + * @date 2025-09-05 + */ +public class OrderInsuranceInfo extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 保险交易流水号 + */ + @Excel(name = "保险交易流水号") + private String insuranceTransactionCode; + + /** + * 关联订单号 + */ + @Excel(name = "关联订单号") + private String orderCode; + + /** + * 保险支付金额 + */ + @Excel(name = "保险支付金额") + private BigDecimal tradeAmount; + + /** + * 删除标识(0-否;1-是) + */ + private String delFlag; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setInsuranceTransactionCode(String insuranceTransactionCode) { + this.insuranceTransactionCode = insuranceTransactionCode; + } + + public String getInsuranceTransactionCode() { + return insuranceTransactionCode; + } + + public void setOrderCode(String orderCode) { + this.orderCode = orderCode; + } + + public String getOrderCode() { + return orderCode; + } + + public void setTradeAmount(BigDecimal tradeAmount) { + this.tradeAmount = tradeAmount; + } + + public BigDecimal getTradeAmount() { + return tradeAmount; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.JSON_STYLE) + .append("id", getId()) + .append("insuranceTransactionCode", getInsuranceTransactionCode()) + .append("orderCode", getOrderCode()) + .append("tradeAmount", getTradeAmount()) + .append("createTime", getCreateTime()) + .append("createBy", getCreateBy()) + .append("updateTime", getUpdateTime()) + .append("updateBy", getUpdateBy()) + .append("delFlag", getDelFlag()) + .toString(); + } +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PayOrderDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PayOrderDTO.java index ee9d78a3b..f0087652c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PayOrderDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PayOrderDTO.java @@ -37,6 +37,11 @@ public class PayOrderDTO extends BaseDTO{ */ private BigDecimal payAmount; + /** + * 保险金额 + */ + private BigDecimal insuranceAmount; + /** * @see ScenarioEnum * 支付场景 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PayOrderSuccessCallbackDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PayOrderSuccessCallbackDTO.java index da946c8ba..3dfa732f6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PayOrderSuccessCallbackDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PayOrderSuccessCallbackDTO.java @@ -23,6 +23,11 @@ public class PayOrderSuccessCallbackDTO { */ private BigDecimal payAmount; + /** + * 保险金额 + */ + private BigDecimal insuranceAmount; + /** * 支付方式 * 1-余额支付;2-微信支付;3-支付宝支付 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInsuranceInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInsuranceInfoMapper.java new file mode 100644 index 000000000..d1a6f3344 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInsuranceInfoMapper.java @@ -0,0 +1,63 @@ +package com.jsowell.pile.mapper; + +import java.util.List; + +import com.jsowell.pile.domain.OrderInsuranceInfo; +import org.springframework.stereotype.Repository; + +/** + * 订单保险信息Mapper接口 + * + * @author jsowell + * @date 2025-09-05 + */ +@Repository +public interface OrderInsuranceInfoMapper { + /** + * 查询订单保险信息 + * + * @param id 订单保险信息主键 + * @return 订单保险信息 + */ + public OrderInsuranceInfo selectOrderInsuranceInfoById(Long id); + + /** + * 查询订单保险信息列表 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 订单保险信息集合 + */ + public List selectOrderInsuranceInfoList(OrderInsuranceInfo orderInsuranceInfo); + + /** + * 新增订单保险信息 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 结果 + */ + public int insertOrderInsuranceInfo(OrderInsuranceInfo orderInsuranceInfo); + + /** + * 修改订单保险信息 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 结果 + */ + public int updateOrderInsuranceInfo(OrderInsuranceInfo orderInsuranceInfo); + + /** + * 删除订单保险信息 + * + * @param id 订单保险信息主键 + * @return 结果 + */ + public int deleteOrderInsuranceInfoById(Long id); + + /** + * 批量删除订单保险信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteOrderInsuranceInfoByIds(Long[] ids); +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInsuranceInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInsuranceInfoService.java new file mode 100644 index 000000000..0326ea544 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInsuranceInfoService.java @@ -0,0 +1,61 @@ +package com.jsowell.pile.service; + +import java.util.List; + +import com.jsowell.pile.domain.OrderInsuranceInfo; + +/** + * 订单保险信息Service接口 + * + * @author jsowell + * @date 2025-09-05 + */ +public interface IOrderInsuranceInfoService { + /** + * 查询订单保险信息 + * + * @param id 订单保险信息主键 + * @return 订单保险信息 + */ + public OrderInsuranceInfo selectOrderInsuranceInfoById(Long id); + + /** + * 查询订单保险信息列表 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 订单保险信息集合 + */ + public List selectOrderInsuranceInfoList(OrderInsuranceInfo orderInsuranceInfo); + + /** + * 新增订单保险信息 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 结果 + */ + public int insertOrderInsuranceInfo(OrderInsuranceInfo orderInsuranceInfo); + + /** + * 修改订单保险信息 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 结果 + */ + public int updateOrderInsuranceInfo(OrderInsuranceInfo orderInsuranceInfo); + + /** + * 批量删除订单保险信息 + * + * @param ids 需要删除的订单保险信息主键集合 + * @return 结果 + */ + public int deleteOrderInsuranceInfoByIds(Long[] ids); + + /** + * 删除订单保险信息信息 + * + * @param id 订单保险信息主键 + * @return 结果 + */ + public int deleteOrderInsuranceInfoById(Long id); +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java new file mode 100644 index 000000000..66ef8907b --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java @@ -0,0 +1,90 @@ +package com.jsowell.pile.service.impl; + +import java.util.List; + +import com.jsowell.common.util.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.jsowell.pile.mapper.OrderInsuranceInfoMapper; +import com.jsowell.pile.domain.OrderInsuranceInfo; +import com.jsowell.pile.service.IOrderInsuranceInfoService; + +/** + * 订单保险信息Service业务层处理 + * + * @author jsowell + * @date 2025-09-05 + */ +@Service +public class OrderInsuranceInfoServiceImpl implements IOrderInsuranceInfoService { + @Autowired + private OrderInsuranceInfoMapper orderInsuranceInfoMapper; + + /** + * 查询订单保险信息 + * + * @param id 订单保险信息主键 + * @return 订单保险信息 + */ + @Override + public OrderInsuranceInfo selectOrderInsuranceInfoById(Long id) { + return orderInsuranceInfoMapper.selectOrderInsuranceInfoById(id); + } + + /** + * 查询订单保险信息列表 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 订单保险信息 + */ + @Override + public List selectOrderInsuranceInfoList(OrderInsuranceInfo orderInsuranceInfo) { + return orderInsuranceInfoMapper.selectOrderInsuranceInfoList(orderInsuranceInfo); + } + + /** + * 新增订单保险信息 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 结果 + */ + @Override + public int insertOrderInsuranceInfo(OrderInsuranceInfo orderInsuranceInfo) { + orderInsuranceInfo.setCreateTime(DateUtils.getNowDate()); + return orderInsuranceInfoMapper.insertOrderInsuranceInfo(orderInsuranceInfo); + } + + /** + * 修改订单保险信息 + * + * @param orderInsuranceInfo 订单保险信息 + * @return 结果 + */ + @Override + public int updateOrderInsuranceInfo(OrderInsuranceInfo orderInsuranceInfo) { + orderInsuranceInfo.setUpdateTime(DateUtils.getNowDate()); + return orderInsuranceInfoMapper.updateOrderInsuranceInfo(orderInsuranceInfo); + } + + /** + * 批量删除订单保险信息 + * + * @param ids 需要删除的订单保险信息主键 + * @return 结果 + */ + @Override + public int deleteOrderInsuranceInfoByIds(Long[] ids) { + return orderInsuranceInfoMapper.deleteOrderInsuranceInfoByIds(ids); + } + + /** + * 删除订单保险信息信息 + * + * @param id 订单保险信息主键 + * @return 结果 + */ + @Override + public int deleteOrderInsuranceInfoById(Long id) { + return orderInsuranceInfoMapper.deleteOrderInsuranceInfoById(id); + } +} diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml new file mode 100644 index 000000000..1efd75f64 --- /dev/null +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + select id, insurance_transaction_code, order_code, trade_amount, create_time, create_by, update_time, update_by, del_flag from order_insurance_info + + + + + + + + insert into order_insurance_info + + insurance_transaction_code, + order_code, + trade_amount, + create_time, + create_by, + update_time, + update_by, + del_flag, + + + #{insuranceTransactionCode}, + #{orderCode}, + #{tradeAmount}, + #{createTime}, + #{createBy}, + #{updateTime}, + #{updateBy}, + #{delFlag}, + + + + + update order_insurance_info + + insurance_transaction_code = #{insuranceTransactionCode}, + order_code = #{orderCode}, + trade_amount = #{tradeAmount}, + create_time = #{createTime}, + create_by = #{createBy}, + update_time = #{updateTime}, + update_by = #{updateBy}, + del_flag = #{delFlag}, + + where id = #{id} + + + + delete from order_insurance_info where id = #{id} + + + + delete from order_insurance_info where id in + + #{id} + + + \ No newline at end of file From c2487295c547c706963be42feddf4e4c6afccd99 Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 5 Sep 2025 13:46:18 +0800 Subject: [PATCH 03/23] =?UTF-8?q?order=5Fbasic=5Finfo=20=E8=A1=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20insurance=5Famount=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/pile/domain/OrderBasicInfo.java | 5 ++ .../mapper/pile/OrderBasicInfoMapper.xml | 54 +++++++++++++++++-- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java index 654e1ce0f..670037b4c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java @@ -120,6 +120,11 @@ public class OrderBasicInfo { */ private Date payTime; + /** + * 保险金额 + */ + private BigDecimal insuranceAmount; + /** * 车牌号码 */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 6007e58f3..dd5514275 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -25,6 +25,7 @@ + @@ -55,7 +56,7 @@ id, order_code, transaction_code, order_status, order_type, merge_charge_number, main_connector_code, member_id, station_id, merchant_id, pile_sn, connector_code, pile_connector_code, logic_card, vin_code, start_mode, third_party_type, - pay_mode, pay_status, pay_amount, pay_time, plate_number, order_amount, virtual_amount, + pay_mode, pay_status, pay_amount, pay_time, insurance_amount, plate_number, order_amount, virtual_amount, group_code, discount_amount, settle_amount, actual_received_amount, remedial_amount, charge_start_time, charge_end_time, start_type, reserved_start_time, reserved_end_time, start_soc, end_soc, stop_reason_code, reason, settlement_time, refund_amount, @@ -81,7 +82,7 @@ pile_sn, connector_code, pile_connector_code, logic_card, vin_code, start_mode, third_party_type, pay_mode, pay_status, - pay_amount, pay_time, plate_number, + pay_amount, pay_time, insurance_amount, plate_number, order_amount, virtual_amount, group_code, discount_amount, settle_amount, actual_received_amount, remedial_amount, charge_start_time, charge_end_time, start_type, @@ -97,7 +98,7 @@ #{pileSn,jdbcType=VARCHAR}, #{connectorCode,jdbcType=VARCHAR}, #{pileConnectorCode,jdbcType=VARCHAR}, #{logicCard,jdbcType=VARCHAR}, #{vinCode,jdbcType=VARCHAR}, #{startMode,jdbcType=VARCHAR}, #{thirdPartyType,jdbcType=VARCHAR}, #{payMode,jdbcType=VARCHAR}, #{payStatus,jdbcType=VARCHAR}, - #{payAmount,jdbcType=DECIMAL}, #{payTime,jdbcType=TIMESTAMP}, #{plateNumber,jdbcType=VARCHAR}, + #{payAmount,jdbcType=DECIMAL}, #{payTime,jdbcType=TIMESTAMP}, #{insuranceAmount,jdbcType=DECIMAL}, #{plateNumber,jdbcType=VARCHAR}, #{orderAmount,jdbcType=DECIMAL}, #{virtualAmount,jdbcType=DECIMAL}, #{groupCode,jdbcType=VARCHAR}, #{discountAmount,jdbcType=DECIMAL}, #{settleAmount,jdbcType=DECIMAL}, #{actualReceivedAmount,jdbcType=DECIMAL}, #{remedialAmount,jdbcType=DECIMAL}, #{chargeStartTime,jdbcType=TIMESTAMP}, #{chargeEndTime,jdbcType=TIMESTAMP}, #{startType,jdbcType=VARCHAR}, @@ -173,6 +174,9 @@ pay_time, + + insurance_ammount, + plate_number, @@ -310,6 +314,9 @@ #{payTime,jdbcType=TIMESTAMP}, + + #{insuranceAmount,jdbcType=DECIMAL}, + #{plateNumber,jdbcType=VARCHAR}, @@ -451,6 +458,9 @@ pay_time = #{payTime,jdbcType=TIMESTAMP}, + + insurance_amount = #{insuranceAmount,jdbcType=DECIMAL}, + plate_number = #{plateNumber,jdbcType=VARCHAR}, @@ -552,6 +562,7 @@ pay_status = #{payStatus,jdbcType=VARCHAR}, pay_amount = #{payAmount,jdbcType=DECIMAL}, pay_time = #{payTime,jdbcType=TIMESTAMP}, + insurance_amount = #{insuranceAmount,jdbcType=DECIMAL}, plate_number = #{plateNumber,jdbcType=VARCHAR}, order_amount = #{orderAmount,jdbcType=DECIMAL}, virtual_amount = #{virtualAmount,jdbcType=DECIMAL}, @@ -683,6 +694,11 @@ when id = #{item.id,jdbcType=INTEGER} then #{item.payTime,jdbcType=TIMESTAMP} + + + when id = #{item.id,jdbcType=INTEGER} then #{item.insuranceAmount,jdbc=DECIMAL} + + when id = #{item.id,jdbcType=INTEGER} then #{item.plateNumber,jdbcType=VARCHAR} @@ -958,6 +974,13 @@ + + + + when id = #{item.id,jdbcType=INTEGER} then #{item.insuranceAmount,jdbcType=DECIMAL} + + + @@ -1144,7 +1167,7 @@ insert into order_basic_info (order_code, transaction_code, order_status, order_type, merge_charge_number, main_connector_code, member_id, station_id, merchant_id, pile_sn, connector_code, pile_connector_code, logic_card, vin_code, start_mode, - third_party_type, pay_mode, pay_status, pay_amount, pay_time, plate_number, order_amount, + third_party_type, pay_mode, pay_status, pay_amount, pay_time, insurance_amount, plate_number, order_amount, virtual_amount, group_code, discount_amount, settle_amount, actual_received_amount, remedial_amount, charge_start_time, charge_end_time, start_type, reserved_start_time, reserved_end_time, start_soc, end_soc, stop_reason_code, reason, settlement_time, @@ -1160,7 +1183,7 @@ #{item.logicCard,jdbcType=VARCHAR}, #{item.vinCode,jdbcType=VARCHAR}, #{item.startMode,jdbcType=VARCHAR}, #{item.thirdPartyType,jdbcType=VARCHAR}, #{item.payMode,jdbcType=VARCHAR}, #{item.payStatus,jdbcType=VARCHAR}, - #{item.payAmount,jdbcType=DECIMAL}, #{item.payTime,jdbcType=TIMESTAMP}, + #{item.payAmount,jdbcType=DECIMAL}, #{item.payTime,jdbcType=TIMESTAMP}, #{item.insuranceAmount,jdbc=DECIMAL}, #{item.plateNumber,jdbcType=VARCHAR}, #{item.orderAmount,jdbcType=DECIMAL}, #{item.virtualAmount,jdbcType=DECIMAL}, #{item.groupCode,jdbcType=VARCHAR}, @@ -1207,6 +1230,7 @@ pay_status, pay_amount, pay_time, + insurance_amount, plate_number, order_amount, virtual_amount, @@ -1258,6 +1282,7 @@ #{payStatus,jdbcType=VARCHAR}, #{payAmount,jdbcType=DECIMAL}, #{payTime,jdbcType=TIMESTAMP}, + #{insuranceAmount,jdbcType=DECIMAL}, #{plateNumber,jdbcType=VARCHAR}, #{orderAmount,jdbcType=DECIMAL}, #{virtualAmount,jdbcType=DECIMAL}, @@ -1309,6 +1334,7 @@ pay_status = #{payStatus,jdbcType=VARCHAR}, pay_amount = #{payAmount,jdbcType=DECIMAL}, pay_time = #{payTime,jdbcType=TIMESTAMP}, + insurance_amount = #{insuranceAmount,jdbcType=DECIMAL}, plate_number = #{plateNumber,jdbcType=VARCHAR}, order_amount = #{orderAmount,jdbcType=DECIMAL}, virtual_amount = #{virtualAmount,jdbcType=DECIMAL}, @@ -1404,6 +1430,9 @@ pay_time, + + insurance_amount, + plate_number, @@ -1545,6 +1574,9 @@ #{payTime,jdbcType=TIMESTAMP}, + + #{insuranceAmount,jdbcType=DECIMAL}, + #{plateNumber,jdbcType=VARCHAR}, @@ -1686,6 +1718,9 @@ pay_time = #{payTime,jdbcType=TIMESTAMP}, + + insurance_amount = #{insuranceAmount,jdbcType=DECIMAL}, + plate_number = #{plateNumber,jdbcType=VARCHAR}, @@ -2125,6 +2160,9 @@ pay_time, + + insurance_amount, + plate_number, @@ -2250,6 +2288,9 @@ #{payTime}, + + #{insuranceAmount}, + #{plateNumber}, @@ -2376,6 +2417,9 @@ pay_time = #{payTime}, + + insurance_amount = #{insuranceAmount}, + plate_number = #{plateNumber}, From 22d13cf995c0c0de6b9e1b6edeaa7e2390d8e932 Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 5 Sep 2025 15:05:54 +0800 Subject: [PATCH 04/23] =?UTF-8?q?add=20=20=E6=96=B0=E5=A2=9E=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E8=AE=A2=E5=8D=95=E5=8F=B7=E6=9F=A5=E8=AF=A2=E4=BF=9D?= =?UTF-8?q?=E9=99=A9=E4=BF=A1=E6=81=AF=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/mapper/OrderInsuranceInfoMapper.java | 8 ++++++++ .../pile/service/IOrderInsuranceInfoService.java | 7 +++++++ .../service/impl/OrderInsuranceInfoServiceImpl.java | 10 ++++++++++ .../mapper/pile/OrderInsuranceInfoMapper.xml | 12 ++++++++++++ 4 files changed, 37 insertions(+) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInsuranceInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInsuranceInfoMapper.java index d1a6f3344..2eb53d7f3 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInsuranceInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInsuranceInfoMapper.java @@ -3,6 +3,7 @@ package com.jsowell.pile.mapper; import java.util.List; import com.jsowell.pile.domain.OrderInsuranceInfo; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; /** @@ -60,4 +61,11 @@ public interface OrderInsuranceInfoMapper { * @return 结果 */ public int deleteOrderInsuranceInfoByIds(Long[] ids); + + /** + * 通过订单号查询订单保险信息 + * @param orderCode + * @return + */ + OrderInsuranceInfo getInfoByOrderCode(@Param("orderCode") String orderCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInsuranceInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInsuranceInfoService.java index 0326ea544..8109eb551 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInsuranceInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInsuranceInfoService.java @@ -58,4 +58,11 @@ public interface IOrderInsuranceInfoService { * @return 结果 */ public int deleteOrderInsuranceInfoById(Long id); + + /** + * 通过订单号查询订单保险信息 + * @param orderCode + * @return + */ + OrderInsuranceInfo getInsuranceInfoByOrderCode(String orderCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java index 66ef8907b..b5a00d71d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java @@ -87,4 +87,14 @@ public class OrderInsuranceInfoServiceImpl implements IOrderInsuranceInfoService public int deleteOrderInsuranceInfoById(Long id) { return orderInsuranceInfoMapper.deleteOrderInsuranceInfoById(id); } + + /** + * 通过订单号查询订单保险信息 + * @param orderCode + * @return + */ + @Override + public OrderInsuranceInfo getInsuranceInfoByOrderCode(String orderCode) { + return orderInsuranceInfoMapper.getInfoByOrderCode(orderCode); + } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml index 1efd75f64..7c49fe255 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml @@ -20,6 +20,11 @@ select id, insurance_transaction_code, order_code, trade_amount, create_time, create_by, update_time, update_by, del_flag from order_insurance_info + + + id, insurance_transaction_code, order_code, trade_amount, create_time, create_by, update_time, update_by, del_flag + + + select + + from order_insurance_info where del_flag = '0' + and order_code = #{orderCode,jdbcType=VARCHAR} + \ No newline at end of file From 66add9fecfbcc81ed179969b0cc81834ac64074e Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 5 Sep 2025 15:06:36 +0800 Subject: [PATCH 05/23] =?UTF-8?q?update=20=20=E6=94=AF=E4=BB=98=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E4=B8=AD=E5=88=A4=E6=96=AD=E8=AE=A2=E5=8D=95=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E8=B4=AD=E4=B9=B0=E4=BF=9D=E9=99=A9=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E8=B4=AD=E4=B9=B0=EF=BC=8C=E5=B0=86=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E5=85=85=E7=94=B5=E9=87=91=E9=A2=9D=E5=87=8F=E5=8E=BB=E4=BF=9D?= =?UTF-8?q?=E9=99=A9=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/jsowell/service/OrderService.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 0cf63bfd7..4bdf5a19a 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -146,6 +146,9 @@ public class OrderService { @Autowired private PersonalChargingRecordService personalChargingRecordService; + @Autowired + private IOrderInsuranceInfoService orderInsuranceInfoService; + // 引入线程池 private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); @@ -1205,10 +1208,17 @@ public class OrderService { } }, executor); + BigDecimal chargeAmount = BigDecimal.ZERO; + OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + BigDecimal insuranceAmount = orderBasicInfo.getInsuranceAmount(); + if (insuranceAmount != null) { + // 如果用户支付了保险金额,则充电金额需将保险金额减去 + chargeAmount = amount.divide(insuranceAmount).setScale(2, RoundingMode.HALF_UP); + } // 支付订单成功 PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder() .orderCode(orderCode) - .payAmount(amount) + .payAmount(chargeAmount) // .payMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue()) .payMode(payModel) .acquirer(AcquirerEnum.ADAPAY.getValue()) From 5da6c5c2bb2a845047d14051b15b300b4b7b9049 Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 5 Sep 2025 15:07:20 +0800 Subject: [PATCH 06/23] update --- .../src/main/java/com/jsowell/service/OrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 4bdf5a19a..d5fef729f 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -1218,7 +1218,7 @@ public class OrderService { // 支付订单成功 PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder() .orderCode(orderCode) - .payAmount(chargeAmount) + .payAmount(chargeAmount) // amount // .payMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue()) .payMode(payModel) .acquirer(AcquirerEnum.ADAPAY.getValue()) From 74b2f93db349c7d33f3a56905761e1ca396f778e Mon Sep 17 00:00:00 2001 From: Lemon Date: Mon, 8 Sep 2025 15:57:16 +0800 Subject: [PATCH 07/23] =?UTF-8?q?update=20=20=E4=BF=9D=E9=99=A9=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OrderBasicInfoServiceImpl.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 5bbaa9d18..b0f2bda5d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1947,8 +1947,13 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { OrderBasicInfo orderBasicInfo = this.getOrderInfoByOrderCode(afterSettleOrderDTO.getOrderCode()); String payMode = orderBasicInfo.getPayMode(); + // 校验订单支付金额,消费金额,退款金额 BigDecimal orderPayAmount = afterSettleOrderDTO.getOrderPayAmount(); // 支付金额 + if (orderBasicInfo.getInsuranceAmount() != null) { + // 如果该笔订单保险金额不为空,则将支付金额 - 保险金额作为新的支付金额 + orderPayAmount = orderPayAmount.subtract(orderBasicInfo.getInsuranceAmount()); + } BigDecimal orderConsumeAmount = afterSettleOrderDTO.getOrderConsumeAmount(); // 消费金额 BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount(); BigDecimal orderRefundAmount = afterSettleOrderDTO.getOrderRefundAmount(); // 退款金额 @@ -2008,6 +2013,8 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { */ private List getOrderPaymentInfoList(AfterSettleOrderDTO afterSettleOrderDTO) { String orderCode = afterSettleOrderDTO.getOrderCode(); + OrderBasicInfo orderBasicInfo = afterSettleOrderDTO.getOrderBasicInfo(); + // 查询订单支付记录 List orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderCode); // 选出需要分账的支付id @@ -2052,6 +2059,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 订单编号 String orderCode = afterSettleOrderDTO.getOrderCode(); + // 订单信息 + OrderBasicInfo orderBasicInfo = afterSettleOrderDTO.getOrderBasicInfo(); + // 订单是否需要分账, 结算金额必须大于0 if (orderSettleAmount == null || orderSettleAmount.compareTo(BigDecimal.ZERO) <= 0) { logger.info("realTimeOrderSplit-订单[{}]结算金额[{}]必须大于0", afterSettleOrderDTO.getOrderCode(), orderSettleAmount); @@ -2175,6 +2185,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { @Override public List calculationSplitDataList(List stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO) { List resultList = Lists.newArrayList(); + OrderBasicInfo orderBasicInfo = afterSettleOrderDTO.getOrderBasicInfo(); // totalElecSplitRatio和totalServiceSplitRatio 都等于100%, 才进行后续操作 boolean verifySplitConfig = stationSplitConfigService.verifySplitConfig(stationSplitConfigList); @@ -2237,6 +2248,16 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return resultList; } + // 如果保险金额不为空,新增一条分账信息 + if (orderBasicInfo.getInsuranceAmount() != null) { + SplitData insuranceSplit = new SplitData(); + insuranceSplit.setMemberId(Constants.ZERO); + insuranceSplit.setAmount(String.valueOf(orderBasicInfo.getInsuranceAmount())); + insuranceSplit.setFeeFlag(Constants.ZERO); + + resultList.add(insuranceSplit); + } + return resultList; } From 012e3753000e968a27f986253dc290fdffb13f51 Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 9 Sep 2025 09:59:59 +0800 Subject: [PATCH 08/23] =?UTF-8?q?update=20=20=E5=88=A4=E6=96=AD=E4=BF=9D?= =?UTF-8?q?=E9=99=A9=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/service/impl/OrderBasicInfoServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index b0f2bda5d..03633eb18 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1950,8 +1950,8 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 校验订单支付金额,消费金额,退款金额 BigDecimal orderPayAmount = afterSettleOrderDTO.getOrderPayAmount(); // 支付金额 - if (orderBasicInfo.getInsuranceAmount() != null) { - // 如果该笔订单保险金额不为空,则将支付金额 - 保险金额作为新的支付金额 + if (orderBasicInfo.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { + // 如果该笔订单保险金额大于0,则将支付金额 - 保险金额作为新的支付金额 orderPayAmount = orderPayAmount.subtract(orderBasicInfo.getInsuranceAmount()); } BigDecimal orderConsumeAmount = afterSettleOrderDTO.getOrderConsumeAmount(); // 消费金额 @@ -2248,8 +2248,8 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return resultList; } - // 如果保险金额不为空,新增一条分账信息 - if (orderBasicInfo.getInsuranceAmount() != null) { + // 如果保险金额大于0,新增一条分账信息 + if (orderBasicInfo.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { SplitData insuranceSplit = new SplitData(); insuranceSplit.setMemberId(Constants.ZERO); insuranceSplit.setAmount(String.valueOf(orderBasicInfo.getInsuranceAmount())); From dc36a9b4e2f720d358caa90e8c6459e70f395353 Mon Sep 17 00:00:00 2001 From: Lemon Date: Wed, 10 Sep 2025 13:45:40 +0800 Subject: [PATCH 09/23] =?UTF-8?q?bugfix=20=20=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E5=85=85=E7=94=B5=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/jsowell/service/OrderService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index d5fef729f..074fa98c1 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -1208,7 +1208,8 @@ public class OrderService { } }, executor); - BigDecimal chargeAmount = BigDecimal.ZERO; + // 初始化充电金额 + BigDecimal chargeAmount = amount; OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); BigDecimal insuranceAmount = orderBasicInfo.getInsuranceAmount(); if (insuranceAmount != null) { From cc2d09b15744c6b43420ca20a6f350fa78572480 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Wed, 10 Sep 2025 14:18:10 +0800 Subject: [PATCH 10/23] =?UTF-8?q?update=20=E5=88=86=E5=B8=90=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 03633eb18..94a3c5d02 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2253,11 +2253,12 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { SplitData insuranceSplit = new SplitData(); insuranceSplit.setMemberId(Constants.ZERO); insuranceSplit.setAmount(String.valueOf(orderBasicInfo.getInsuranceAmount())); - insuranceSplit.setFeeFlag(Constants.ZERO); - + insuranceSplit.setFeeFlag(Constants.N); resultList.add(insuranceSplit); } + // TODO 是否可以分多笔给同一个账户?,如果不行,下面进行根据adapayMemberId进行金额累加 + return resultList; } From 8047a3c1493e8987364b0ae71558c33588f5b99d Mon Sep 17 00:00:00 2001 From: Lemon Date: Thu, 11 Sep 2025 13:23:01 +0800 Subject: [PATCH 11/23] =?UTF-8?q?update=20=20=E7=94=B5=E6=B1=A0=E5=85=85?= =?UTF-8?q?=E7=94=B5=E6=8A=A5=E5=91=8AService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thirdparty/ChargeAlgorithmController.java | 17 +- .../src/main/resources/application-dev.yml | 20 +- .../src/main/resources/application-prd.yml | 20 +- .../src/main/resources/application-pre.yml | 20 +- .../src/main/resources/application-sit.yml | 12 +- .../src/main/resources/application.yml | 18 +- .../domain/BatteryChargeReportData.java | 102 +++++ .../platform/dto/BatteryChargeReportDTO.java | 26 ++ .../impl/BatteryChargeReportService.java | 381 ++++++++++++++++++ .../service/impl/ChargeAlgorithmService.java | 47 ++- 10 files changed, 605 insertions(+), 58 deletions(-) create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryChargeReportData.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/dto/BatteryChargeReportDTO.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java diff --git a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java index 3cbdffed8..249cf62ea 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java @@ -3,12 +3,11 @@ package com.jsowell.api.thirdparty; import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.response.RestApiResponse; +import com.jsowell.thirdparty.platform.dto.BatteryChargeReportDTO; +import com.jsowell.thirdparty.platform.service.impl.BatteryChargeReportService; import com.jsowell.thirdparty.platform.service.impl.ChargeAlgorithmService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 算法应用Controller @@ -24,11 +23,15 @@ public class ChargeAlgorithmController extends BaseController { @Autowired private ChargeAlgorithmService chargeAlgorithmService; - @GetMapping("/pushOrderInfo/{orderCode}") - public RestApiResponse pushOrderInfo(@PathVariable("orderCode") String orderCode) { + @Autowired + private BatteryChargeReportService batteryChargeReportService; + + @PostMapping("/pushOrderInfo") + public RestApiResponse pushOrderInfo(@RequestBody BatteryChargeReportDTO dto) { RestApiResponse response = null; try { - String result = chargeAlgorithmService.pushOrderInfo(orderCode); + // String result = chargeAlgorithmService.pushOrderInfo(orderCode); + String result = batteryChargeReportService.pushChargeData(dto.getOrderCode(), dto.getReportType()); response = new RestApiResponse<>(result); }catch (Exception e) { logger.error("算法应用推送订单信息 error, ", e); diff --git a/jsowell-admin/src/main/resources/application-dev.yml b/jsowell-admin/src/main/resources/application-dev.yml index d150825b3..ef3e2cd10 100644 --- a/jsowell-admin/src/main/resources/application-dev.yml +++ b/jsowell-admin/src/main/resources/application-dev.yml @@ -249,13 +249,19 @@ parking: orgId: BTTEST01 # 充电算法平台配置 -chargeAlgorithm: - url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json - clientId: e488bac5f70b496fa2d82065089e5f81 -chargeAlgorithm2pdf: - url: https://wx.btiger.net/jeecg-boot - getTaskIdUrl: /api/docking/api/evaluate - getPdfLinkUrl: /api/docking/report/pdf/ +#chargeAlgorithm: +# url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json +# clientId: e488bac5f70b496fa2d82065089e5f81 +#chargeAlgorithm2pdf: +# url: https://wx.btiger.net/jeecg-boot +# getTaskIdUrl: /api/docking/api/evaluate +# getPdfLinkUrl: /api/docking/report/pdf/ +# token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== + +batteryChargeReport: + webDomainPrefix: https://wx.btiger.net/jeecg-boot + getTaskIdApi: /api/docking/api/evaluate + apiPrefix: /api/docking/report/ token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== # dubbo配置 diff --git a/jsowell-admin/src/main/resources/application-prd.yml b/jsowell-admin/src/main/resources/application-prd.yml index 2925f5cc7..4ded886b9 100644 --- a/jsowell-admin/src/main/resources/application-prd.yml +++ b/jsowell-admin/src/main/resources/application-prd.yml @@ -244,13 +244,19 @@ parking: orgId: DCWYPROD20250210 # 充电算法平台配置 -chargeAlgorithm: - url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json - clientId: e488bac5f70b496fa2d82065089e5f81 -chargeAlgorithm2pdf: - url: https://wx.btiger.net/jeecg-boot - getTaskIdUrl: /api/docking/api/evaluate - getPdfLinkUrl: /api/docking/report/pdf/ +#chargeAlgorithm: +# url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json +# clientId: e488bac5f70b496fa2d82065089e5f81 +#chargeAlgorithm2pdf: +# url: https://wx.btiger.net/jeecg-boot +# getTaskIdUrl: /api/docking/api/evaluate +# getPdfLinkUrl: /api/docking/report/pdf/ +# token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== + +batteryChargeReport: + webDomainPrefix: https://wx.btiger.net/jeecg-boot + getTaskIdApi: /api/docking/api/evaluate + apiPrefix: /api/docking/report/ token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== # dubbo配置 diff --git a/jsowell-admin/src/main/resources/application-pre.yml b/jsowell-admin/src/main/resources/application-pre.yml index 310e5a8d1..54536d565 100644 --- a/jsowell-admin/src/main/resources/application-pre.yml +++ b/jsowell-admin/src/main/resources/application-pre.yml @@ -249,13 +249,19 @@ parking: orgId: BTTEST01 # 充电算法平台配置 -chargeAlgorithm: - url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json - clientId: e488bac5f70b496fa2d82065089e5f81 -chargeAlgorithm2pdf: - url: https://wx.btiger.net/jeecg-boot - getTaskIdUrl: /api/docking/api/evaluate - getPdfLinkUrl: /api/docking/report/pdf/ +#chargeAlgorithm: +# url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json +# clientId: e488bac5f70b496fa2d82065089e5f81 +#chargeAlgorithm2pdf: +# url: https://wx.btiger.net/jeecg-boot +# getTaskIdUrl: /api/docking/api/evaluate +# getPdfLinkUrl: /api/docking/report/pdf/ +# token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== + +batteryChargeReport: + webDomainPrefix: https://wx.btiger.net/jeecg-boot + getTaskIdApi: /api/docking/api/evaluate + apiPrefix: /api/docking/report/ token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== # dubbo配置 diff --git a/jsowell-admin/src/main/resources/application-sit.yml b/jsowell-admin/src/main/resources/application-sit.yml index b7767686a..2825f546b 100644 --- a/jsowell-admin/src/main/resources/application-sit.yml +++ b/jsowell-admin/src/main/resources/application-sit.yml @@ -247,9 +247,15 @@ parking: orgId: BTTEST01 # 充电算法平台配置 -chargeAlgorithm: - url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json - clientId: e488bac5f70b496fa2d82065089e5f81 +#chargeAlgorithm: +# url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json +# clientId: e488bac5f70b496fa2d82065089e5f81 + +batteryChargeReport: + webDomainPrefix: https://wx.btiger.net/jeecg-boot + getTaskIdApi: /api/docking/api/evaluate + apiPrefix: /api/docking/report/ + token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== # dubbo配置 dubbo: diff --git a/jsowell-admin/src/main/resources/application.yml b/jsowell-admin/src/main/resources/application.yml index 8eb9c1fd3..06f4ea47f 100644 --- a/jsowell-admin/src/main/resources/application.yml +++ b/jsowell-admin/src/main/resources/application.yml @@ -144,12 +144,18 @@ wulian: WuLianSimRenew: api.v2.order.renew # 充电算法平台配置 -chargeAlgorithm: - url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json - clientId: e488bac5f70b496fa2d82065089e5f81 -chargeAlgorithm2pdf: - getTaskIdUrl: /api/docking/api/evaluate - getPdfLinkUrl: /api/docking/report/pdf/ +#chargeAlgorithm: +# url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json +# clientId: e488bac5f70b496fa2d82065089e5f81 +#chargeAlgorithm2pdf: +# getTaskIdUrl: /api/docking/api/evaluate +# getPdfLinkUrl: /api/docking/report/pdf/ +# token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== + +batteryChargeReport: + webDomainPrefix: https://wx.btiger.net/jeecg-boot + getTaskIdApi: /api/docking/api/evaluate + apiPrefix: /api/docking/report/ token: MTc0NzcyMjgwMzg0NC1xNmFucG96cHR4aQ== # sms4j diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryChargeReportData.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryChargeReportData.java new file mode 100644 index 000000000..7db1a8735 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryChargeReportData.java @@ -0,0 +1,102 @@ +package com.jsowell.thirdparty.platform.domain; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 电池充电报告Data + * + * @author Lemon + * @Date 2025/9/10 14:29:28 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class BatteryChargeReportData { + private String mfrID; + private String siteName; + private String siteAddress; + private String siteLongitude; + private String siteLatitude; + private String businessHours; + private String serviceHotline; + private String businessStatus; + private Integer sitePileNumber; + private Integer siteGunNumber; + private String phone; + private String siteCode; + private String pileCode; + private String gunNo; + private String readBeforeCharge; + + private Integer doorStatus; + + private Integer bmsChargeMode; + + + private String vin; + private String batteryType; + private String nominalEnergy; + private String ratedCapacity; + private String ratedVoltage; + private String maxAllowTemp; + private Integer initSoc; + private String orderCode; + private String beginTime; + private Integer totalChargeTime; + private Integer remainChargeTime; + private String totalCharge; + private String alarmCode; + private String bmsVersion; + + @JSONField(name = "data") + private List chargeData; + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class ChargeData{ + private String dcv; + private String dca; + private String measuringChargeVoltage; + private Integer bmsVoltageFault; + private String gunTemp; + private String singleMaxAllowVoltage; + private String beforeChargeTotalVoltage; + private String readCurrentCharge; + private String singleMinVoltage; + private String bmsDemandElectricity; + private String chargePower; + private String maxAllowTotalVoltage; + private String bmsDemandVoltage; + private String maxAllowElectricity; + private String measuringChargeElectricity; + private String singleMaxVoltage; + private String singleMaxTemp; + private String singleMinTemp; + private String reportTime; + private Integer currentSoc; + private Integer socStatus; + private Integer maxTempPointNum; + private Integer minTempPointNum; + private Integer maxSingleVoltageNum; + private Integer maxSingleVoltageGroupNum; + private Integer singleVoltageStatus; + private String batteryInsulation; + private Integer outputConnectStatus; + private Integer bmsConnectError; + private Integer bmsVoltageError; + private Integer bmsInsulationError; + private Integer bmsOverTempError; + private Integer bmsHighVoltageError; + private Integer bmsElectricityOverFault; + private Integer bmsBatteryOverTempError; + } +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/dto/BatteryChargeReportDTO.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/dto/BatteryChargeReportDTO.java new file mode 100644 index 000000000..0aaec2143 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/dto/BatteryChargeReportDTO.java @@ -0,0 +1,26 @@ +package com.jsowell.thirdparty.platform.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 电池报告DTO + * + * @author Lemon + * @Date 2025/9/11 10:44:48 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class BatteryChargeReportDTO { + private String orderCode; + + /** + * 报告类型 + * 1-web; 2-pdf + */ + private String reportType; +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java new file mode 100644 index 000000000..0023ce757 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java @@ -0,0 +1,381 @@ +package com.jsowell.thirdparty.platform.service.impl; + +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson2.JSON; +import com.jsowell.common.constant.CacheConstants; +import com.jsowell.common.constant.Constants; +import com.jsowell.common.core.domain.ykc.*; +import com.jsowell.common.core.redis.RedisCache; +import com.jsowell.common.util.DateUtils; +import com.jsowell.common.util.StringUtils; +import com.jsowell.pile.service.OrderBasicInfoService; +import com.jsowell.pile.service.PileBasicInfoService; +import com.jsowell.pile.service.PileConnectorInfoService; +import com.jsowell.pile.service.PileStationInfoService; +import com.jsowell.pile.thirdparty.ParameterConfigData; +import com.jsowell.pile.vo.uniapp.customer.OrderVO; +import com.jsowell.pile.vo.web.PileConnectorInfoVO; +import com.jsowell.pile.vo.web.PileDetailVO; +import com.jsowell.pile.vo.web.PileStationVO; +import com.jsowell.thirdparty.platform.domain.BatteryChargeReportData; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 电池充电报告Service + * + * @author Lemon + * @Date 2025/9/10 13:42:28 + */ +@Service +public class BatteryChargeReportService { + private final Logger log = LoggerFactory.getLogger(this.getClass()); + + + @Value("${batteryChargeReport.webDomainPrefix}") + private String webDomainPrefix; + + @Value("${batteryChargeReport.getTaskIdApi}") + private String getTaskIdApi; + + @Value("${batteryChargeReport.apiPrefix}") + private String apiPrefix; + + @Value("${batteryChargeReport.token}") + private String token; + + @Autowired + private RedisCache redisCache; + + @Autowired + private OrderBasicInfoService orderBasicInfoService; + + @Autowired + private PileBasicInfoService pileBasicInfoService; + + @Autowired + private PileConnectorInfoService pileConnectorInfoService; + + @Autowired + private PileStationInfoService pileStationInfoService; + + /** + * 统一发送充电电池数据 + * + * @param orderCode + */ + public String pushChargeData(String orderCode, String reportType) { + // 根据订单号查询订单信息 + OrderVO orderVO = orderBasicInfoService.getChargeOrderInfoByOrderCode(orderCode); + if (orderVO == null) { + return "订单信息为空"; + } + // 先判断直流桩还是交流桩,如果是交流桩就不进行计算 + PileDetailVO pileDetailVO = pileBasicInfoService.selectPileDetailByPileSn(orderVO.getPileSn()); + if (StringUtils.equals(Constants.TWO, pileDetailVO.getChargePortType())) { + log.info("订单:{} 为交流桩订单,不进行充电算法计算", orderCode); + return "不进行计算"; + } + + // 查询站点信息 + PileStationVO stationVO = pileStationInfoService.getStationInfo(orderVO.getStationId()); + + // 获取各项数据 + Map map = getDatasByOrderVO(orderVO); + String taskId = pushInfoGetTaskId(map, stationVO, orderVO); + + // 根据 taskId 获取链接 + // 默认 web 端 url + String apiUrl = webDomainPrefix + apiPrefix + "web/" + taskId; + if (StringUtils.equals(Constants.TWO, reportType)) { + // 2- pdf 端 + apiUrl = webDomainPrefix + apiPrefix + "pdf/" + taskId; + } + // 发送请求 + String result = HttpRequest.get(apiUrl).execute().body(); + log.info("发送获取报告result:{}", result); + + return result; + } + + public static void main(String[] args) { + String taskId = "8b8c2fed952f41d39eb583d0021c9908"; + String url = "https://wx.btiger.net/jeecg-boot" + "/api/docking/report/" + "web/" + taskId; + String result = HttpRequest.get(url).execute().body(); + + System.out.println(result); + } + + /** + * 推送信息获取taskId + * + * @param map + * @param stationVO + * @param orderVO + * @return + */ + private String pushInfoGetTaskId(Map map, PileStationVO stationVO, OrderVO orderVO) { + ChargingHandshakeData chargingHandshakeData = (ChargingHandshakeData) map.get("chargingHandshakeData"); // 0X15 + ParameterConfigData parameterConfigData = (ParameterConfigData) map.get("parameterConfigData"); // 0X17 + TransactionRecordsData transactionRecordsData = (TransactionRecordsData) map.get("transactionRecordsData"); // 0x3b + List chargerOutputInfoList = (List) map.get("chargerOutputInfoList"); // 0x23List + + BMSDemandAndChargerOutputData bmsDemandAndChargerOutputData = chargerOutputInfoList.get(0); + // 计算充电时长 + long chargingTime = DateUtils.intervalTime(orderVO.getStartTime(), orderVO.getEndTime()); + // 查询枪口、桩数量 + List pileConnectorInfoVOS = pileConnectorInfoService.selectConnectorListByStationId(Long.parseLong(stationVO.getId())); + if (CollectionUtils.isEmpty(pileConnectorInfoVOS)) { + return null; + } + // 将桩号进行去重汇总 + // Set strings = pileConnectorInfoVOS.stream() + // .collect(Collectors.toMap( + // PileConnectorInfoVO::getPileSn, + // Function.identity(), + // (x1, x2) -> x1 + // )).keySet(); + + Set snList = pileConnectorInfoVOS.stream() + .map(PileConnectorInfoVO::getPileSn) + .collect(Collectors.toSet()); + + BatteryChargeReportData data = BatteryChargeReportData.builder() + .mfrID("") + .siteName(stationVO.getStationName()) + .siteAddress(stationVO.getAddress()) + .siteLongitude(stationVO.getStationLng()) + .siteLatitude(stationVO.getStationLat()) + .businessHours(stationVO.getBusinessHours()) + .serviceHotline(stationVO.getStationTel()) + .businessStatus(Constants.ZERO) // 营业状态 0-正常; 1-停运 + .sitePileNumber(snList.size()) // 桩数量 + .siteGunNumber(pileConnectorInfoVOS.size()) + .phone("") // 用户手机号码 + .siteCode(stationVO.getId()) + .pileCode(orderVO.getPileSn()) + .gunNo(orderVO.getConnectorCode()) + .readBeforeCharge(transactionRecordsData.getAmmeterTotalStart()) + .doorStatus(Constants.zero) + .bmsChargeMode(Integer.parseInt(bmsDemandAndChargerOutputData.getBmsChargingModel())) + .vin(chargingHandshakeData.getVinCode()) + .batteryType(chargingHandshakeData.getBmsBatteryType()) + .nominalEnergy(new BigDecimal(parameterConfigData.getBmsSumEnergy()).toBigInteger().toString()) + .ratedCapacity(new BigDecimal(parameterConfigData.getBmsSumEnergy()).toBigInteger().toString()) + .ratedVoltage(chargingHandshakeData.getBmsBatteryVoltage()) + .maxAllowTemp(parameterConfigData.getBmsMaxTemperature()) + .initSoc(new BigDecimal(orderVO.getStartSoc()).intValue()) + .orderCode(orderVO.getOrderCode()) + .beginTime(orderVO.getStartTime()) + .totalChargeTime(Math.toIntExact(chargingTime)) + .remainChargeTime(Constants.zero) + .totalCharge(orderVO.getTotalPower()) + .alarmCode(Constants.ZERO) + .bmsVersion("V1.1") + + .build(); + + List chargingDetailInfos = transformData(map); + + chargingDetailInfos.stream() + .filter(info -> info.getCurrentSoc() > 100) // 只处理 currentSoc > 100 的元素 + .forEach(info -> info.setCurrentSoc(100)); + Collections.reverse(chargingDetailInfos); + + data.setChargeData(chargingDetailInfos); + + // 发送请求 + String postUrl = webDomainPrefix + getTaskIdApi; + String response = HttpRequest.post(postUrl).header("token", token).body(JSON.toJSONString(data)).execute().body(); + log.info("获取taskId发送请求收到回复 response:{}", response); + + // 将返回结果转化为json + Map resultMap = (Map) JSON.parse(response); + String resultCode = String.valueOf(resultMap.get("code")); + String taskId = ""; + if (StringUtils.equals(Constants.TWO_HUNDRED, resultCode)) { + // 获取 taskId + Map result = (Map)resultMap.get("result"); + taskId = String.valueOf(result.get("taskId")); + log.info("taskId:{}", taskId); + } + return taskId; + } + + + /** + * 根据订单号查询各项充电数据 + * + * @param orderVO + * @return + */ + private Map getDatasByOrderVO(OrderVO orderVO) { + Map map = new LinkedHashMap<>(); + // 0x15数据Data + ChargingHandshakeData chargingHandshakeData = null; + // 0x17数据data + ParameterConfigData parameterConfigData = null; + // 0x3b数据data + TransactionRecordsData transactionRecordsData = null; + // 0x23数据data + BMSDemandAndChargerOutputData bmsDemandAndChargerOutputData = null; + + String orderCode = orderVO.getOrderCode(); + String transactionCode = orderVO.getTransactionCode(); + + // 获取0x15 + String chargingHandshakeKey = CacheConstants.CHARGING_HANDSHAKE_DATA_BY_TRANSACTION_CODE + transactionCode; + chargingHandshakeData = redisCache.getCacheObject(chargingHandshakeKey); + if (chargingHandshakeData == null) { + log.info("orderCode:{}, 0x15信息为空", orderCode); + } + + // 获取0x17 + String redisKey = CacheConstants.PARAMETER_CONFIGURATION_BY_TRANSACTION_CODE + transactionCode; + parameterConfigData = redisCache.getCacheObject(redisKey); + if (parameterConfigData == null) { + log.info("orderCode:{}, 0x17信息为空", orderCode); + } + + // 获取0x3b缓存信息 + String transactionDataKey = CacheConstants.TRANSACTION_RECORD_BY_TRANSACTION_CODE + transactionCode; + transactionRecordsData = redisCache.getCacheObject(transactionDataKey); + + // 获取最后一条0x23 + List chargerOutputInfoList = pileBasicInfoService.getBMSDemandAndChargerOutputInfoList(transactionCode); + if (CollectionUtils.isEmpty(chargerOutputInfoList)) { + log.info("orderCode:{}, 0x23信息为空", orderCode); + } + + // 获取0x25 + List bmsChargeInfoList = pileBasicInfoService.getBMSChargeInfoList(transactionCode); + // 0x13 + List chargingRealTimeDataList = orderBasicInfoService.getChargingRealTimeData(transactionCode); + + Map> collect_0x25 = new LinkedHashMap<>(); + Map> collect_0x13 = new LinkedHashMap<>(); + if (bmsChargeInfoList != null) { + // 按照dateTime分组(将key设置为 yyyy-MM-dd HH:mm:00 格式) + collect_0x25 = bmsChargeInfoList.stream() + .map(x -> { + x.setDateTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", DateUtils.parseDate(x.getDateTime()))); + return x; + }) + .collect(Collectors.groupingBy(BMSChargeInfoData::getDateTime)); + + } + if (chargingRealTimeDataList != null) { + collect_0x13 = chargingRealTimeDataList.stream() + .map(x -> { + x.setDateTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", DateUtils.parseDate(x.getDateTime()))); + return x; + }) + .collect(Collectors.groupingBy(RealTimeMonitorData::getDateTime)); + } + + map.put("chargingHandshakeData", chargingHandshakeData); // 0x15 + map.put("parameterConfigData", parameterConfigData); // 0x17 + map.put("transactionRecordsData", transactionRecordsData); // 0x3b + map.put("chargerOutputInfoList", chargerOutputInfoList); // 0x23List + map.put("collect_0x25", collect_0x25); + map.put("collect_0x13", collect_0x13); + + return map; + } + + /** + * 封装充电数据 Datas + * @param map + * @return + */ + private List transformData(Map map) { + List resultList = new ArrayList<>(); + BatteryChargeReportData.ChargeData chargeData; + + ParameterConfigData parameterConfigData = (ParameterConfigData) map.get("parameterConfigData"); // 0X17 + TransactionRecordsData transactionRecordsData = (TransactionRecordsData) map.get("transactionRecordsData"); // 0x3b + List chargerOutputInfoList = (List) map.get("chargerOutputInfoList"); // 0x23List + Map> collect_0x25 = (Map>) map.get("collect_0x25"); + Map> collect_0x13 = (Map>) map.get("collect_0x13"); + + if (CollectionUtils.isEmpty(chargerOutputInfoList)) { + return new ArrayList<>(); + } + + for (BMSDemandAndChargerOutputData realTimeData_0x23 : chargerOutputInfoList) { + chargeData = new BatteryChargeReportData.ChargeData(); + String dateStr = DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", DateUtils.parseDate(realTimeData_0x23.getDateTime())); + + // 获取该时间的0x13数据 + List RealTimeDataList = collect_0x13.get(dateStr); + if (RealTimeDataList != null) { + RealTimeMonitorData realTimeData_0x13 = RealTimeDataList.get(0); + + chargeData.setGunTemp(realTimeData_0x13.getGunLineTemperature()); + chargeData.setCurrentSoc(new BigDecimal(realTimeData_0x13.getSOC()).intValue()); + chargeData.setSocStatus(new BigDecimal(realTimeData_0x13.getSOC()).intValue()); + } else { + chargeData.setGunTemp("0"); + chargeData.setCurrentSoc(new BigDecimal(realTimeData_0x23.getSoc()).intValue()); + chargeData.setSocStatus(new BigDecimal(realTimeData_0x23.getSoc()).intValue()); + } + chargeData.setDcv(new BigDecimal(realTimeData_0x23.getPileVoltageOutput()).toBigInteger().toString()); + chargeData.setDca(new BigDecimal(realTimeData_0x23.getPileCurrentOutput()).toBigInteger().toString()); + chargeData.setMeasuringChargeVoltage(new BigDecimal(realTimeData_0x23.getBmsChargingVoltage()).toBigInteger().toString()); + chargeData.setBmsVoltageFault(Constants.zero); + chargeData.setSingleMaxAllowVoltage(new BigDecimal(parameterConfigData.getBmsMaxVoltage()).setScale(1, RoundingMode.HALF_DOWN).toString()); + chargeData.setBeforeChargeTotalVoltage(new BigDecimal(parameterConfigData.getBmsRealTimeVoltage()).toBigInteger().toString()); + chargeData.setReadCurrentCharge(transactionRecordsData.getAmmeterTotalEnd()); + chargeData.setSingleMinVoltage(new BigDecimal(realTimeData_0x23.getBmsMaxVoltageAndGroup()).setScale(1, RoundingMode.HALF_DOWN).toString()); + chargeData.setBmsDemandElectricity(new BigDecimal(realTimeData_0x23.getBmsCurrentDemand()).toBigInteger().toString()); + chargeData.setChargePower(realTimeData_0x23.getOutputPower()); + chargeData.setMaxAllowTotalVoltage(new BigDecimal(parameterConfigData.getBmsMaxChargingVoltage()).toBigInteger().toString()); + chargeData.setBmsDemandVoltage(new BigDecimal(realTimeData_0x23.getBmsVoltageDemand()).toBigInteger().toString()); + chargeData.setMaxAllowElectricity(new BigDecimal(parameterConfigData.getBmsMaxCurrent()).toBigInteger().toString()); + chargeData.setMeasuringChargeElectricity(new BigDecimal(realTimeData_0x23.getBmsChargingCurrent()).toBigInteger().toString()); + chargeData.setSingleMaxVoltage(new BigDecimal(realTimeData_0x23.getBmsMaxVoltageAndGroup()).setScale(1, RoundingMode.HALF_DOWN).toString()); + chargeData.setReportTime(realTimeData_0x23.getDateTime().replaceAll("[^0-9]", "")); + chargeData.setSingleVoltageStatus(Constants.zero); + chargeData.setOutputConnectStatus(Constants.zero); + chargeData.setBmsConnectError(Constants.zero); + chargeData.setBmsVoltageError(Constants.zero); + chargeData.setBmsInsulationError(Constants.zero); + chargeData.setBmsOverTempError(Constants.zero); + chargeData.setBmsHighVoltageError(Constants.zero); + chargeData.setBmsElectricityOverFault(Constants.zero); + chargeData.setBmsBatteryOverTempError(Constants.zero); + + + // 获取该时间的0x25数据 + List bmsChargeInfoDataList = collect_0x25.get(dateStr); + + if (bmsChargeInfoDataList != null) { + BMSChargeInfoData realTimeData_0x25 = bmsChargeInfoDataList.get(0); + + chargeData.setSingleMaxTemp(realTimeData_0x25.getBmsMaxBatteryTemperature()); + chargeData.setSingleMinTemp(realTimeData_0x25.getMinBatteryTemperature()); + chargeData.setMaxSingleVoltageNum(Integer.parseInt(realTimeData_0x25.getBmsMaxVoltageNum())); + chargeData.setMaxSingleVoltageGroupNum(Integer.parseInt(realTimeData_0x23.getBmsMaxVoltageAndGroup().replace(".", ""))); + chargeData.setMaxTempPointNum(Integer.parseInt(realTimeData_0x25.getMaxTemperatureDetectionNum())); + chargeData.setMinTempPointNum(Integer.parseInt(realTimeData_0x25.getMinTemperatureDetectionNum())); + chargeData.setBatteryInsulation(realTimeData_0x25.getBmsBatteryInsulationStatus()); + + // detailInfo.setVentTemp(); + // detailInfo.setEnvironmentTemp(); + } + resultList.add(chargeData); + } + + return resultList; + } +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java index da94c9a72..5139165a6 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java @@ -31,31 +31,32 @@ import java.util.*; import java.util.stream.Collectors; /** - * 订单算法平台Service + * 订单算法平台Service (已过时) * * @author Lemon * @Date 2024/11/19 13:49:45 */ @Service +@Deprecated public class ChargeAlgorithmService { - @Value("${chargeAlgorithm.url}") - private String url; - - @Value("${chargeAlgorithm.clientId}") - private String clientId; - - @Value("${chargeAlgorithm2pdf.url}") - private String send2PdfUrl; - - @Value("${chargeAlgorithm2pdf.getTaskIdUrl}") - private String getTaskIdUrl; - - @Value("${chargeAlgorithm2pdf.getPdfLinkUrl}") - private String getPdfLinkUrl; - - @Value("${chargeAlgorithm2pdf.token}") - private String token; + // @Value("${chargeAlgorithm.url}") + // private String url; + // + // @Value("${chargeAlgorithm.clientId}") + // private String clientId; + // + // @Value("${chargeAlgorithm2pdf.url}") + // private String send2PdfUrl; + // + // @Value("${chargeAlgorithm2pdf.getTaskIdUrl}") + // private String getTaskIdUrl; + // + // @Value("${chargeAlgorithm2pdf.getPdfLinkUrl}") + // private String getPdfLinkUrl; + // + // @Value("${chargeAlgorithm2pdf.token}") + // private String token; @Autowired private OrderBasicInfoService orderBasicInfoService; @@ -193,7 +194,9 @@ public class ChargeAlgorithmService { data.setChargeData(chargingDetailInfos); // 发送请求 - String postUrl = send2PdfUrl + getTaskIdUrl; + // String postUrl = send2PdfUrl + getTaskIdUrl; + String postUrl = ""; + String token = ""; String response = HttpRequest.post(postUrl).header("token", token).body(JSON.toJSONString(data)).execute().body(); log.info("获取taskId发送请求收到回复 response:{}", response); @@ -291,7 +294,8 @@ public class ChargeAlgorithmService { log.info("web页面发送请求前封装数据 data:{}", JSON.toJSONString(jsonObject)); // 发送请求 - String response = HttpRequest.post(url).header("clientId", clientId).body(JSON.toJSONString(jsonObject)).execute().body(); + // String response = HttpRequest.post(url).header("clientId", clientId).body(JSON.toJSONString(jsonObject)).execute().body(); + String response = ""; log.info("web页面发送请求收到回复 response:{}", response); // 将返回结果转化为json @@ -315,7 +319,8 @@ public class ChargeAlgorithmService { * @return */ private String getPDFDownloadUrlByTaskId(String taskId) { - String postUrl = send2PdfUrl + getPdfLinkUrl + taskId; + // String postUrl = send2PdfUrl + getPdfLinkUrl + taskId; + String postUrl = ""; // 发送请求 String result = HttpRequest.get(postUrl).execute().body(); // 将返回结果转化为json From d11383a04cfbaf7f410ad4cdb81e5904a21ff277 Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 12 Sep 2025 11:03:09 +0800 Subject: [PATCH 12/23] =?UTF-8?q?update=20=20=E7=94=B5=E6=B1=A0=E5=85=85?= =?UTF-8?q?=E7=94=B5=E6=8A=A5=E5=91=8A=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/domain/BatteryReportResult.java | 36 +++++++++++++++++++ .../impl/BatteryChargeReportService.java | 30 ++++++++++++++-- 2 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryReportResult.java diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryReportResult.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryReportResult.java new file mode 100644 index 000000000..0c08db650 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryReportResult.java @@ -0,0 +1,36 @@ +package com.jsowell.thirdparty.platform.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 电池报告 result 部分 + * + * @author Lemon + * @Date 2025/9/11 13:48:33 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class BatteryReportResult { + private String pdfUrl; + + private String webUrl; + + private String fileName; + + private String expireTime; + + private String reportId; + + private String fileSize; + + private String generateTime; + + private String taskId; + + private String directUrl; +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java index 0023ce757..b9a9255d7 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java @@ -18,6 +18,7 @@ import com.jsowell.pile.vo.web.PileConnectorInfoVO; import com.jsowell.pile.vo.web.PileDetailVO; import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.thirdparty.platform.domain.BatteryChargeReportData; +import com.jsowell.thirdparty.platform.domain.BatteryReportResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -93,7 +94,17 @@ public class BatteryChargeReportService { Map map = getDatasByOrderVO(orderVO); String taskId = pushInfoGetTaskId(map, stationVO, orderVO); - // 根据 taskId 获取链接 + return taskId; + } + + /** + * 通过taskId获取链接 + * @param taskId + * @param reportType 1-web链接;2-pdf链接 + * @return + */ + public String getUrlByTaskId(String taskId, String reportType) { + // 根据 taskId 获取链接· // 默认 web 端 url String apiUrl = webDomainPrefix + apiPrefix + "web/" + taskId; if (StringUtils.equals(Constants.TWO, reportType)) { @@ -104,9 +115,24 @@ public class BatteryChargeReportService { String result = HttpRequest.get(apiUrl).execute().body(); log.info("发送获取报告result:{}", result); - return result; + // 将返回结果转化为json + Map resultMap = (Map) JSON.parse(result); + String resultCode = String.valueOf(resultMap.get("code")); + if (!StringUtils.equals(Constants.TWO_HUNDRED, resultCode)) { + return null; + } + // 获取对应的 url + // 将 result 部分转换成 BatteryReportResult 对象 + BatteryReportResult batteryReportResult = (BatteryReportResult) resultMap.get("result"); + String pdfUrl = batteryReportResult.getPdfUrl(); + if (StringUtils.isBlank(pdfUrl)) { + String webUrl = batteryReportResult.getWebUrl(); + return webUrl; + } + return pdfUrl; } + public static void main(String[] args) { String taskId = "8b8c2fed952f41d39eb583d0021c9908"; String url = "https://wx.btiger.net/jeecg-boot" + "/api/docking/report/" + "web/" + taskId; From f4be5317617cc96dbac24a1f579ee99457765bcd Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 12 Sep 2025 14:29:11 +0800 Subject: [PATCH 13/23] =?UTF-8?q?=E7=94=B5=E6=B1=A0=E5=85=85=E7=94=B5?= =?UTF-8?q?=E6=8A=A5=E5=91=8A=E6=96=B0=E5=A2=9E=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/domain/ChargeAlgorithmRecord.java | 6 ++++++ .../mapper/pile/ChargeAlgorithmRecordMapper.xml | 17 ++++++++++++++++- .../impl/BatteryChargeReportService.java | 5 +++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ChargeAlgorithmRecord.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ChargeAlgorithmRecord.java index 9d9ab57de..90cc1f7a6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ChargeAlgorithmRecord.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ChargeAlgorithmRecord.java @@ -29,6 +29,12 @@ public class ChargeAlgorithmRecord extends BaseEntity { @Excel(name = "订单编号") private String orderCode; + private String taskId; + + private String webUrl; + + private String pdfUrl; + /** * 总体得分 */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/ChargeAlgorithmRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/ChargeAlgorithmRecordMapper.xml index 8720cfbb5..58ca3f78e 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/ChargeAlgorithmRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/ChargeAlgorithmRecordMapper.xml @@ -7,6 +7,9 @@ + + + @@ -31,7 +34,7 @@ - select id, order_code, score, capacity_metrics, energy_indicator, consistency, temp_consistency, volt_consistency, + select id, order_code, task_id, web_url, pdf_url, score, capacity_metrics, energy_indicator, consistency, temp_consistency, volt_consistency, capacity_consistency, sot, thermal_runaway, cooling, seal, current_soc, soc_alarm, temp_diff_alarm, temp_rise_alarm, max_allowable_voltage_alarm, max_allowable_electricity_alarm, security_system_level, failure_metrics, performance_metrics, create_time from charge_algorithm_record @@ -40,6 +43,9 @@ and order_code = #{orderCode} + and task_id = #{taskId} + and web_url = #{webUrl} + and pdf_url = #{pdfUrl} and score = #{score} and capacity_metrics = #{capacityMetrics} and energy_indicator = #{energyIndicator} @@ -72,6 +78,9 @@ insert into charge_algorithm_record order_code, + task_id, + web_url, + pdf_url, score, capacity_metrics, energy_indicator, @@ -96,6 +105,9 @@ #{orderCode}, + #{taskId}, + #{webUrl}, + #{pdfUrl}, #{score}, #{capacityMetrics}, #{energyIndicator}, @@ -124,6 +136,9 @@ update charge_algorithm_record order_code = #{orderCode}, + task_id = #{taskId}, + web_url = #{webUrl}, + pdf_url = #{pdfUrl}, score = #{score}, capacity_metrics = #{capacityMetrics}, energy_indicator = #{energyIndicator}, diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java index b9a9255d7..0ae1269c1 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java @@ -78,13 +78,14 @@ public class BatteryChargeReportService { // 根据订单号查询订单信息 OrderVO orderVO = orderBasicInfoService.getChargeOrderInfoByOrderCode(orderCode); if (orderVO == null) { - return "订单信息为空"; + log.error("统一发送orderCode:{} 充电电池数据 error, 订单信息为空", orderCode); + return null; } // 先判断直流桩还是交流桩,如果是交流桩就不进行计算 PileDetailVO pileDetailVO = pileBasicInfoService.selectPileDetailByPileSn(orderVO.getPileSn()); if (StringUtils.equals(Constants.TWO, pileDetailVO.getChargePortType())) { log.info("订单:{} 为交流桩订单,不进行充电算法计算", orderCode); - return "不进行计算"; + return null; } // 查询站点信息 From f099c480ede3baf07b5bcf51a782e4c512c0df5c Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 16 Sep 2025 09:25:52 +0800 Subject: [PATCH 14/23] =?UTF-8?q?bugfix=20=20=E6=94=AF=E4=BB=98=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/jsowell/service/OrderService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 074fa98c1..45f153c6a 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -1212,9 +1212,9 @@ public class OrderService { BigDecimal chargeAmount = amount; OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); BigDecimal insuranceAmount = orderBasicInfo.getInsuranceAmount(); - if (insuranceAmount != null) { + if (insuranceAmount.compareTo(BigDecimal.ZERO) > 0) { // 如果用户支付了保险金额,则充电金额需将保险金额减去 - chargeAmount = amount.divide(insuranceAmount).setScale(2, RoundingMode.HALF_UP); + chargeAmount = amount.subtract(insuranceAmount).setScale(2, RoundingMode.HALF_UP); } // 支付订单成功 PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder() From 9b5831ebc1b05698a034974c1b8b83e60b723500 Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 16 Sep 2025 15:36:48 +0800 Subject: [PATCH 15/23] =?UTF-8?q?bugfix=20=20=E4=BF=AE=E5=A4=8D=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=B8=AD=20=E4=BF=9D=E9=99=A9=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=B8=BA0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/jsowell/pile/dto/GenerateOrderDTO.java | 5 +++++ .../pile/service/impl/OrderBasicInfoServiceImpl.java | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/GenerateOrderDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/GenerateOrderDTO.java index 6ef66d1bf..ef74b4a46 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/GenerateOrderDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/GenerateOrderDTO.java @@ -55,6 +55,11 @@ public class GenerateOrderDTO extends BasicPileDTO{ */ private BigDecimal chargeAmount; + /** + * 保险金额 + */ + private BigDecimal insuranceAmount; + /** * 充电桩枪口信息 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 94a3c5d02..b25ce0532 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -4264,7 +4264,6 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { orderInfo.setPayAmount(orderPayAmount.add(payAmount)); } orderInfo.setPayTime(new Date()); - String pileSn = orderInfo.getPileSn(); // 发送启动充电指令前,再次下发计费模板 @@ -4283,7 +4282,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } // 获取启动金额 - BigDecimal chargeAmount = computeChargeAmount(orderInfo.getMerchantId(), orderInfo.getStationId(), orderInfo.getMemberId(), orderInfo.getPayAmount()); + BigDecimal chargeAmount = computeChargeAmount(orderInfo.getMerchantId(), orderInfo.getStationId(), orderInfo.getMemberId(), dto.getPayAmount()); // 发送启动指令 if (StringUtils.equals(pileConnectorDetailVO.getChargePortType(), Constants.THREE)) { @@ -4803,6 +4802,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .settleAmount(BigDecimal.ZERO) .startType(dto.getStartType()) .build(); + if (dto.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { + orderBasicInfo.setInsuranceAmount(dto.getInsuranceAmount()); + } if (StringUtils.equals(OrderTypeEnum.MERGE_CHARGE_ORDER.getValue(), dto.getOrderType())) { // 并充订单 orderBasicInfo.setOrderType(dto.getOrderType()); From c54a07ad406adb1dc1422dc6ac28f1d4e27c669f Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 16 Sep 2025 15:47:15 +0800 Subject: [PATCH 16/23] =?UTF-8?q?update=20=E9=80=80=E6=AC=BE=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E8=AE=A1=E7=AE=97=E4=BF=9D=E9=99=A9=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index b25ce0532..98155fc1a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1984,6 +1984,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } } + // 判断订单是否购买保险 + if (orderBasicInfo.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { + // 如果购买保险,则退款金额需要再减去保险金额 + orderRefundAmount = orderRefundAmount.subtract(orderBasicInfo.getInsuranceAmount()); + } // 校验通过,将退款金额重新set(为了避免数据库的退款金额没有及时更新) orderBasicInfo.setRefundAmount(orderRefundAmount); afterSettleOrderDTO.setOrderBasicInfo(orderBasicInfo); From 625a17d351470fc99d4578a1d5fa13a4cf32f971 Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 16 Sep 2025 16:01:35 +0800 Subject: [PATCH 17/23] =?UTF-8?q?update=20=20pre=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E4=B9=9F=E9=80=80=E6=AC=BE=E3=80=81=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/PaymentTestController.java | 8 ++++---- .../impl/OrderBasicInfoServiceImpl.java | 20 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/jsowell-admin/src/test/java/PaymentTestController.java b/jsowell-admin/src/test/java/PaymentTestController.java index cde8075a1..74e3be056 100644 --- a/jsowell-admin/src/test/java/PaymentTestController.java +++ b/jsowell-admin/src/test/java/PaymentTestController.java @@ -539,10 +539,10 @@ public class PaymentTestController { */ @Test public void createPaymentReverseRequestTest() { - String paymentId = "002212025040208183810753300530720288768"; - BigDecimal refundAmount = new BigDecimal("33.55"); - String memberId = "61212331"; - String orderCode = "C25747230823"; + String paymentId = "002212025091615421510813930946193444864"; + BigDecimal refundAmount = new BigDecimal("0.5"); + String memberId = "65622699"; + String orderCode = "C67588633864"; // 延迟分账未确认调撤销调撤销接口退款 PaymentReverseOperation operation = new PaymentReverseOperation(); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 98155fc1a..e337515ca 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2050,11 +2050,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { logger.info("执行订单分账/新分账方法, orderCode:{}, 分账金额:{}", afterSettleOrderDTO.getOrderCode(), afterSettleOrderDTO.getOrderSettleAmount()); // 如果是PRE环境, 直接返回 - String env = SpringUtils.getActiveProfile(); - if (StringUtils.equalsIgnoreCase(env, "pre")) { - logger.debug("PRE环境不执行"); - // return null; - } + // String env = SpringUtils.getActiveProfile(); + // if (StringUtils.equalsIgnoreCase(env, "pre")) { + // logger.debug("PRE环境不执行"); + // // return null; + // } // 结算金额 BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount(); @@ -2414,11 +2414,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { logger.info("执行订单退款/新退款方法, orderCode:{}, 退款金额:{}, dto:{}", afterSettleOrderDTO.getOrderCode(), afterSettleOrderDTO.getOrderRefundAmount(), JSON.toJSONString(afterSettleOrderDTO)); // 如果是PRE环境, 直接返回 - String env = SpringUtils.getActiveProfile(); - if (StringUtils.equalsIgnoreCase(env, "pre")) { - logger.debug("PRE环境不执行"); - // return; - } + // String env = SpringUtils.getActiveProfile(); + // if (StringUtils.equalsIgnoreCase(env, "pre")) { + // logger.debug("PRE环境不执行"); + // // return; + // } // 退款 String mode = pileMerchantInfoService.getDelayModeByMerchantId(afterSettleOrderDTO.getMerchantId()); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode); From ea92374c9cf391cf7c69b6f3136642f8daefc6bb Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 16 Sep 2025 16:10:22 +0800 Subject: [PATCH 18/23] =?UTF-8?q?bugfix=20=20=E9=80=80=E6=AC=BE=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/service/impl/OrderBasicInfoServiceImpl.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index e337515ca..74bba97b9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1984,11 +1984,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } } - // 判断订单是否购买保险 - if (orderBasicInfo.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { - // 如果购买保险,则退款金额需要再减去保险金额 - orderRefundAmount = orderRefundAmount.subtract(orderBasicInfo.getInsuranceAmount()); - } + // 校验通过,将退款金额重新set(为了避免数据库的退款金额没有及时更新) orderBasicInfo.setRefundAmount(orderRefundAmount); afterSettleOrderDTO.setOrderBasicInfo(orderBasicInfo); From ffbb95ae12c42b4058ead8a769dd1c77a32a3549 Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 16 Sep 2025 16:27:41 +0800 Subject: [PATCH 19/23] =?UTF-8?q?bugfix=20=20=E9=80=80=E6=AC=BE=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/service/impl/OrderBasicInfoServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 74bba97b9..b38905346 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1950,10 +1950,10 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 校验订单支付金额,消费金额,退款金额 BigDecimal orderPayAmount = afterSettleOrderDTO.getOrderPayAmount(); // 支付金额 - if (orderBasicInfo.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { - // 如果该笔订单保险金额大于0,则将支付金额 - 保险金额作为新的支付金额 - orderPayAmount = orderPayAmount.subtract(orderBasicInfo.getInsuranceAmount()); - } + // if (orderBasicInfo.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { + // // 如果该笔订单保险金额大于0,则将支付金额 - 保险金额作为新的支付金额 + // orderPayAmount = orderPayAmount.subtract(orderBasicInfo.getInsuranceAmount()); + // } BigDecimal orderConsumeAmount = afterSettleOrderDTO.getOrderConsumeAmount(); // 消费金额 BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount(); BigDecimal orderRefundAmount = afterSettleOrderDTO.getOrderRefundAmount(); // 退款金额 From 4088313277477723a4d5a6b3a5054676c5b1d1f3 Mon Sep 17 00:00:00 2001 From: Lemon Date: Thu, 18 Sep 2025 14:32:14 +0800 Subject: [PATCH 20/23] =?UTF-8?q?update=20=20=E6=96=B9=E6=B3=95=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jsowell/api/thirdparty/ChargeAlgorithmController.java | 2 +- jsowell-admin/src/test/java/PaymentTestController.java | 4 ++-- .../platform/service/impl/BatteryChargeReportService.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java index 249cf62ea..f80d889e4 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java @@ -31,7 +31,7 @@ public class ChargeAlgorithmController extends BaseController { RestApiResponse response = null; try { // String result = chargeAlgorithmService.pushOrderInfo(orderCode); - String result = batteryChargeReportService.pushChargeData(dto.getOrderCode(), dto.getReportType()); + String result = batteryChargeReportService.getTaskIdByOrderCode(dto.getOrderCode(), dto.getReportType()); response = new RestApiResponse<>(result); }catch (Exception e) { logger.error("算法应用推送订单信息 error, ", e); diff --git a/jsowell-admin/src/test/java/PaymentTestController.java b/jsowell-admin/src/test/java/PaymentTestController.java index 74e3be056..8e163d7de 100644 --- a/jsowell-admin/src/test/java/PaymentTestController.java +++ b/jsowell-admin/src/test/java/PaymentTestController.java @@ -539,10 +539,10 @@ public class PaymentTestController { */ @Test public void createPaymentReverseRequestTest() { - String paymentId = "002212025091615421510813930946193444864"; + String paymentId = "002212025091616304410813943148522684416"; BigDecimal refundAmount = new BigDecimal("0.5"); String memberId = "65622699"; - String orderCode = "C67588633864"; + String orderCode = "C65858163754"; // 延迟分账未确认调撤销调撤销接口退款 PaymentReverseOperation operation = new PaymentReverseOperation(); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java index 0ae1269c1..76ebeffab 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java @@ -70,11 +70,11 @@ public class BatteryChargeReportService { private PileStationInfoService pileStationInfoService; /** - * 统一发送充电电池数据 + * 通过订单号统一发送充电电池数据获取 taskId * * @param orderCode */ - public String pushChargeData(String orderCode, String reportType) { + public String getTaskIdByOrderCode(String orderCode, String reportType) { // 根据订单号查询订单信息 OrderVO orderVO = orderBasicInfoService.getChargeOrderInfoByOrderCode(orderCode); if (orderVO == null) { From 9d8cf73f928b13690e61cc3d3c9a220d08ece027 Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 19 Sep 2025 10:08:00 +0800 Subject: [PATCH 21/23] =?UTF-8?q?bugfix=20=20=E4=BF=9D=E9=99=A9=E5=88=86?= =?UTF-8?q?=E8=B4=A6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jsowell-admin/src/test/java/PaymentTestController.java | 6 +++--- .../pile/service/impl/OrderBasicInfoServiceImpl.java | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/jsowell-admin/src/test/java/PaymentTestController.java b/jsowell-admin/src/test/java/PaymentTestController.java index 8e163d7de..6a87a74ef 100644 --- a/jsowell-admin/src/test/java/PaymentTestController.java +++ b/jsowell-admin/src/test/java/PaymentTestController.java @@ -539,10 +539,10 @@ public class PaymentTestController { */ @Test public void createPaymentReverseRequestTest() { - String paymentId = "002212025091616304410813943148522684416"; - BigDecimal refundAmount = new BigDecimal("0.5"); + String paymentId = "002212025091909381410814926502197886976"; + BigDecimal refundAmount = new BigDecimal("0.02"); String memberId = "65622699"; - String orderCode = "C65858163754"; + String orderCode = "C63345490920"; // 延迟分账未确认调撤销调撤销接口退款 PaymentReverseOperation operation = new PaymentReverseOperation(); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index b38905346..342ad067b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2063,6 +2063,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 订单信息 OrderBasicInfo orderBasicInfo = afterSettleOrderDTO.getOrderBasicInfo(); + // 保险金额(有默认值 0.00) + BigDecimal insuranceAmount = orderBasicInfo.getInsuranceAmount(); + // 订单是否需要分账, 结算金额必须大于0 if (orderSettleAmount == null || orderSettleAmount.compareTo(BigDecimal.ZERO) <= 0) { logger.info("realTimeOrderSplit-订单[{}]结算金额[{}]必须大于0", afterSettleOrderDTO.getOrderCode(), orderSettleAmount); @@ -2104,7 +2107,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { PaymentConfirmParam param = PaymentConfirmParam.builder() .paymentId(paymentId) .divMemberList(divMemberList) - .confirmAmt(orderSettleAmount) + .confirmAmt(orderSettleAmount.add(insuranceAmount)) // 订单结算金额 + 保险金额 .orderCode(orderCode) .wechatAppId(appId) .build(); From bd62f259aca3c11aa1cd7f03d10fd5e761c41653 Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 19 Sep 2025 14:00:25 +0800 Subject: [PATCH 22/23] =?UTF-8?q?update=20=20=E4=BF=AE=E6=94=B9=E8=BD=A6?= =?UTF-8?q?=E7=89=8C=E5=8F=B7=E6=A0=A1=E9=AA=8C=E6=98=AF=E5=90=A6=E7=BB=91?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/PaymentTestController.java | 4 ++-- .../MemberPlateNumberRelationServiceImpl.java | 16 +++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/jsowell-admin/src/test/java/PaymentTestController.java b/jsowell-admin/src/test/java/PaymentTestController.java index 6a87a74ef..b4f8f4aed 100644 --- a/jsowell-admin/src/test/java/PaymentTestController.java +++ b/jsowell-admin/src/test/java/PaymentTestController.java @@ -539,10 +539,10 @@ public class PaymentTestController { */ @Test public void createPaymentReverseRequestTest() { - String paymentId = "002212025091909381410814926502197886976"; + String paymentId = "002212025091910192610814936868000780288"; BigDecimal refundAmount = new BigDecimal("0.02"); String memberId = "65622699"; - String orderCode = "C63345490920"; + String orderCode = "C48996543963"; // 延迟分账未确认调撤销调撤销接口退款 PaymentReverseOperation operation = new PaymentReverseOperation(); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberPlateNumberRelationServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberPlateNumberRelationServiceImpl.java index 28acc6d67..017e1494d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberPlateNumberRelationServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberPlateNumberRelationServiceImpl.java @@ -3,6 +3,8 @@ package com.jsowell.pile.service.impl; import com.alibaba.fastjson2.JSON; import com.google.common.collect.Lists; import com.jsowell.common.constant.UserConstants; +import com.jsowell.common.enums.ykc.ReturnCodeEnum; +import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.StringUtils; import com.jsowell.pile.domain.MemberPlateNumberRelation; import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper; @@ -86,13 +88,13 @@ public class MemberPlateNumberRelationServiceImpl implements MemberPlateNumberRe } // 校验vin - // String vinCode = memberPlateNumberRelation.getVinCode(); - // if (StringUtils.isNotBlank(vinCode)) { - // // 判断当前vin是否被绑定 - // if (UserConstants.NOT_UNIQUE.equals(checkVinCodeUnique(vinCode))) { - // throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_HAS_BEEN_BINDING); - // } - // } + String vinCode = memberPlateNumberRelation.getVinCode(); + if (StringUtils.isNotBlank(vinCode)) { + // 判断当前vin是否被绑定 + if (UserConstants.NOT_UNIQUE.equals(checkVinCodeUnique(vinCode))) { + throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_HAS_BEEN_BINDING); + } + } return memberPlateNumberRelationMapper.updateMemberPlateNumberRelation(memberPlateNumberRelation); } From 896f69f496ca4f80c82c2b03a5cd2f1aa4bac725 Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 23 Sep 2025 10:44:29 +0800 Subject: [PATCH 23/23] =?UTF-8?q?update=20=20=E7=94=B5=E6=B1=A0=E5=85=85?= =?UTF-8?q?=E7=94=B5=E6=8A=A5=E5=91=8AService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thirdparty/ChargeAlgorithmController.java | 9 +++++++-- .../test/java/SpringBootTestController.java | 19 +++++++++++++++++++ .../platform/domain/BatteryReportResult.java | 2 ++ .../impl/BatteryChargeReportService.java | 6 ++++-- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java index f80d889e4..a1cc8c279 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java @@ -3,6 +3,7 @@ package com.jsowell.api.thirdparty; import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.response.RestApiResponse; +import com.jsowell.common.util.StringUtils; import com.jsowell.thirdparty.platform.dto.BatteryChargeReportDTO; import com.jsowell.thirdparty.platform.service.impl.BatteryChargeReportService; import com.jsowell.thirdparty.platform.service.impl.ChargeAlgorithmService; @@ -31,8 +32,12 @@ public class ChargeAlgorithmController extends BaseController { RestApiResponse response = null; try { // String result = chargeAlgorithmService.pushOrderInfo(orderCode); - String result = batteryChargeReportService.getTaskIdByOrderCode(dto.getOrderCode(), dto.getReportType()); - response = new RestApiResponse<>(result); + String taskId = batteryChargeReportService.getTaskIdByOrderCode(dto.getOrderCode()); + String url = ""; + if (StringUtils.isNotBlank(taskId)) { + url = batteryChargeReportService.getUrlByTaskId(taskId, dto.getReportType()); + } + response = new RestApiResponse<>(url); }catch (Exception e) { logger.error("算法应用推送订单信息 error, ", e); response = new RestApiResponse<>(e); diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index c73a4d0fd..132cb4534 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -86,6 +86,7 @@ import com.jsowell.thirdparty.parking.common.bean.QcyunParkCouponDTO; import com.jsowell.thirdparty.parking.service.LTYTService; import com.jsowell.thirdparty.parking.service.QcyunsService; import com.jsowell.thirdparty.platform.service.ThirdPartyPlatformService; +import com.jsowell.thirdparty.platform.service.impl.BatteryChargeReportService; import com.jsowell.thirdparty.platform.util.Cryptos; import com.jsowell.thirdparty.platform.util.Encodes; import com.jsowell.thirdparty.platform.util.GBSignUtils; @@ -292,6 +293,9 @@ public class SpringBootTestController { @Autowired private OrderSplitRecordService orderSplitRecordService; + @Autowired + private BatteryChargeReportService batteryChargeReportService; + @Qualifier("zhongDianLianPlatformServiceImpl") private ThirdPartyPlatformService platformLogic; @@ -305,6 +309,21 @@ public class SpringBootTestController { private final ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(10, JsowellThreadFactory.forName("test-thread-factory")); + @Test + public void testBatteryReport() throws InterruptedException { + String orderCode = "C25787997784"; + String taskId = batteryChargeReportService.getTaskIdByOrderCode(orderCode); + + + // String taskId = "f46d86c5fc9942c3a4806aa97120d279"; + String url = batteryChargeReportService.getUrlByTaskId(taskId, Constants.TWO); + if (StringUtils.isBlank(url)) { + Thread.sleep(2000); + url = batteryChargeReportService.getUrlByTaskId(taskId, Constants.TWO); + } + System.out.println(url); + } + @Test public void testThread() { threadFactory.newThread(() -> System.out.println("testThread:"+ Thread.currentThread().getName())); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryReportResult.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryReportResult.java index 0c08db650..3692a9bea 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryReportResult.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/BatteryReportResult.java @@ -33,4 +33,6 @@ public class BatteryReportResult { private String taskId; private String directUrl; + + private String timestamp; } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java index 76ebeffab..eb2c9bf4e 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java @@ -2,6 +2,7 @@ package com.jsowell.thirdparty.platform.service.impl; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; import com.jsowell.common.core.domain.ykc.*; @@ -74,7 +75,7 @@ public class BatteryChargeReportService { * * @param orderCode */ - public String getTaskIdByOrderCode(String orderCode, String reportType) { + public String getTaskIdByOrderCode(String orderCode) { // 根据订单号查询订单信息 OrderVO orderVO = orderBasicInfoService.getChargeOrderInfoByOrderCode(orderCode); if (orderVO == null) { @@ -124,7 +125,8 @@ public class BatteryChargeReportService { } // 获取对应的 url // 将 result 部分转换成 BatteryReportResult 对象 - BatteryReportResult batteryReportResult = (BatteryReportResult) resultMap.get("result"); + // BatteryReportResult batteryReportResult = (BatteryReportResult) resultMap.get("result"); + BatteryReportResult batteryReportResult = JSONObject.parseObject(resultMap.get("result").toString(), BatteryReportResult.class);; String pdfUrl = batteryReportResult.getPdfUrl(); if (StringUtils.isBlank(pdfUrl)) { String webUrl = batteryReportResult.getWebUrl();