From 45a69c2296a0004e7299a6b760b2176fde330081 Mon Sep 17 00:00:00 2001 From: wen <1455474577@qq.com> Date: Mon, 3 Jan 2022 21:02:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86Bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/AllInvoiceOrdersRequest.java | 5 ++ .../domain/AllInvoiceOrdersResponse.java | 5 ++ .../invoice/mapper/XhpcInvoiceMapper.java | 10 +++ .../com/xhpc/invoice/pojo/XhpcInvoice.java | 7 +- .../pojo/XhpcInvoiceMapHistoryOrder.java | 6 +- .../service/impl/XhpcInvoiceServiceImpl.java | 43 +++++++---- .../mapper/XhpcHistoryOrderMapper.xml | 72 +++++++++++++++---- .../XhpcInvoiceMapHistoryOrderMapper.xml | 14 ++-- .../resources/mapper/XhpcInvoiceMapper.xml | 20 +++++- 9 files changed, 142 insertions(+), 40 deletions(-) diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/AllInvoiceOrdersRequest.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/AllInvoiceOrdersRequest.java index 711ab6a3..36e4609c 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/AllInvoiceOrdersRequest.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/AllInvoiceOrdersRequest.java @@ -25,6 +25,11 @@ public class AllInvoiceOrdersRequest { */ @JsonProperty("creatorType") private Integer creatorType; + /** + * 发票类型 0为普票,1为专票 + */ + @JsonProperty("invoiceType") + private Integer invoiceType; /** * 发票状态(0表示未开票,1表示已经开票,2表示开票失败) */ diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/AllInvoiceOrdersResponse.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/AllInvoiceOrdersResponse.java index f865a59e..ebeeffe6 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/AllInvoiceOrdersResponse.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/AllInvoiceOrdersResponse.java @@ -58,6 +58,11 @@ public class AllInvoiceOrdersResponse { */ @JsonProperty("creatorType") private Integer creatorType; + /** + * 发票类型 0为普票,1为专票 + */ + @JsonProperty("invoiceType") + private Integer invoiceType; /** * 发票金额 */ diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/mapper/XhpcInvoiceMapper.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/mapper/XhpcInvoiceMapper.java index 638a9cad..3c277857 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/mapper/XhpcInvoiceMapper.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/mapper/XhpcInvoiceMapper.java @@ -188,4 +188,14 @@ public interface XhpcInvoiceMapper { */ List selectExcelInvoiceById(Long invoiceId); + /** + * 更新发票所包含的电量总金额,服务费总金额 + * + * @param xhpcInvoice 存放要更新数据的实体类 + * @author WH + * @date 2022/1/3 17:06 + * @since version-1.0 + */ + void updateElectricAndServiceById(XhpcInvoice xhpcInvoice); + } \ No newline at end of file diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/pojo/XhpcInvoice.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/pojo/XhpcInvoice.java index aa635593..474fa6e5 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/pojo/XhpcInvoice.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/pojo/XhpcInvoice.java @@ -9,7 +9,7 @@ import java.util.Date; /** * xhpc_invoice * - * @author + * @author WH */ @Data public class XhpcInvoice implements Serializable { @@ -19,6 +19,11 @@ public class XhpcInvoice implements Serializable { */ private Long invoiceId; + /** + * 发票类型(默认0普票,1为专票) + */ + private Integer invoiceType; + /** * 接收邮箱 */ diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/pojo/XhpcInvoiceMapHistoryOrder.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/pojo/XhpcInvoiceMapHistoryOrder.java index 278f745c..232887b3 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/pojo/XhpcInvoiceMapHistoryOrder.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/pojo/XhpcInvoiceMapHistoryOrder.java @@ -1,6 +1,7 @@ package com.xhpc.invoice.pojo; import lombok.Data; +import lombok.NoArgsConstructor; import java.io.Serializable; import java.math.BigDecimal; @@ -9,8 +10,9 @@ import java.util.Date; /** * xhpc_invoice_map_history_order * - * @author + * @author WH */ +@NoArgsConstructor @Data public class XhpcInvoiceMapHistoryOrder implements Serializable { @@ -37,7 +39,7 @@ public class XhpcInvoiceMapHistoryOrder implements Serializable { /** * 该发票所选中的历史订单订单编号 */ - private String hisotrySerialNumber; + private String historySerialNumber; /** * 该发票所选中的历史订单电费 diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/impl/XhpcInvoiceServiceImpl.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/impl/XhpcInvoiceServiceImpl.java index ecadba21..d74fdd63 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/impl/XhpcInvoiceServiceImpl.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/impl/XhpcInvoiceServiceImpl.java @@ -9,6 +9,7 @@ import com.xhpc.common.core.utils.bean.BeanUtils; import com.xhpc.common.domain.XhpcChargingStation; import com.xhpc.common.redis.service.RedisService; import com.xhpc.invoice.constant.InvoiceMapHistoryOrderStatusConst; +import com.xhpc.invoice.constant.InvoiceStatusConst; import com.xhpc.invoice.domain.*; import com.xhpc.invoice.mapper.*; import com.xhpc.invoice.pojo.XhpcInvoice; @@ -57,7 +58,7 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { RedisService redisService; /** - * 通过requestData中的申请人、申请人类型、发票状态、发票起始时间、发票申请终止时间、开票起始时间、开票终点时间、当前所在页数、当前页所要显示几行,来查询发票列表信息 + * 通过requestData中的申请人、申请人类型、发票类型、发票状态、发票起始时间、发票申请终止时间、开票起始时间、开票终点时间、当前所在页数、当前页所要显示几行,来查询发票列表信息 * * @param requestData 传递过来的查询参数 * @return AllInvoiceOrdersResponse 发票列表对象 @@ -69,19 +70,22 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { public AllInvoiceOrdersResponse selectAllInvoiceOrders(AllInvoiceOrdersRequest requestData) { //计算分页索引 requestData.setCurrentPage((requestData.getCurrentPage() - 1) * requestData.getItems()); - //获取每个历史订单信息 + //获取每张发票信息 List xhpcInvoiceList = xhpcInvoiceMapper.selectAllInvoiceOrdersByCondition(requestData); //对拷,放置到itemsDTO中,然后将itemsDTO存放到itemsDTOList中 ArrayList itemsDTOList = new ArrayList<>(); for (XhpcInvoice xhpcInvoice : xhpcInvoiceList) { AllInvoiceOrdersResponse.ItemsDTO itemsDTO = new AllInvoiceOrdersResponse.ItemsDTO(); itemsDTO.setInvoiceId(xhpcInvoice.getInvoiceId()); + itemsDTO.setInvoiceType(xhpcInvoice.getInvoiceType()); itemsDTO.setCreator(xhpcInvoice.getCreator()); itemsDTO.setCreatorType(xhpcInvoice.getCreatorType()); itemsDTO.setInvoiceMoney(xhpcInvoice.getInvoiceMoney()); itemsDTO.setStatus(xhpcInvoice.getStatus()); itemsDTO.setCreateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, xhpcInvoice.getCreateTime())); - itemsDTO.setInvoicingTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, xhpcInvoice.getInvoicingTime())); + if (xhpcInvoice.getInvoicingTime() != null) { + itemsDTO.setInvoicingTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, xhpcInvoice.getInvoicingTime())); + } itemsDTO.setDrawer(xhpcInvoice.getDrawer()); itemsDTOList.add(itemsDTO); } @@ -99,6 +103,10 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { allInvoiceOrdersResponse.setInvoicedSumMoney(allInvoicedMoney); //查询所有未开发票总金额 BigDecimal allNotInvoicedMoney = xhpcInvoiceMapper.allNotInvoicedMoney(); + if (allNotInvoicedMoney == null) { + //如果没有任何未开发票,那么总金额就设置成0.00 + allNotInvoicedMoney = new BigDecimal("0.00"); + } allInvoiceOrdersResponse.setNotInvoiceSumMoney(allNotInvoicedMoney); return allInvoiceOrdersResponse; } @@ -283,7 +291,7 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { SpecificInvoicedResponse.HistoryOrdersDTO.HistoryOrdersDataDTO historyOrdersDataDTO = new SpecificInvoicedResponse.HistoryOrdersDTO.HistoryOrdersDataDTO(); historyOrdersDataDTO.setHistoryOrderId(xhpcInvoiceMapHistoryOrder.getHistoryOrderId()); historyOrdersDataDTO.setActPrice(xhpcInvoiceMapHistoryOrder.getHistoryActPrice()); - historyOrdersDataDTO.setHistorySerialNumber(xhpcInvoiceMapHistoryOrder.getHisotrySerialNumber()); + historyOrdersDataDTO.setHistorySerialNumber(xhpcInvoiceMapHistoryOrder.getHistorySerialNumber()); historyOrdersDataDTO.setOrderCreateTime(DateUtils.parseDateToStr(xhpcInvoiceMapHistoryOrder.getCreateTime())); historyOrdersDataDTOS.add(historyOrdersDataDTO); } @@ -292,6 +300,11 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { historyOrdersDTO.setTotalItems(historyOrdersList.size()); specificInvoicedResponse.setHistoryOrders(historyOrdersDTO); + //如果用户在该发票还没有被处理时,点击查看该发票详情,那么就直接返回数据。 + if (xhpcInvoice.getStatus().equals(InvoiceStatusConst.INVOICING)) { + return specificInvoicedResponse; + } + //一旦调了详情接口,就去掉该已开发票的未读状态,同时redis中的未读数量数据-1 xhpcInvoiceMapper.updateByInvoiceId(invoiceId); reduceNoReadInvoiceCount(xhpcInvoice); @@ -400,7 +413,7 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { //判断传入的历史订单是否被其他发票包含 List historyOrderIds = saveInvoiceInfoRequest.getHistoryOrderIds(); List lockOrderList = xhpcInvoiceMapHistoryOrderMapper.getLockedOnesByHistoryOrderId(historyOrderIds); - if (lockOrderList != null) { + if (lockOrderList.size() > 0) { throw new Exception("该历史订单已被其他发票包含"); } //将该发票记录放入数据库生成发票记录,除了所包含的历史订单的总电费,总服务费 @@ -439,9 +452,9 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { xhpcInvoiceMapHistoryOrder.setHistoryOrderId(xhpcHistoryOrder.getHistoryOrderId()); xhpcInvoiceMapHistoryOrder.setHistoryUserId(xhpcHistoryOrder.getUserId()); xhpcInvoiceMapHistoryOrder.setHistoryUserType(Long.valueOf(xhpcHistoryOrder.getSource())); - xhpcInvoiceMapHistoryOrder.setHisotrySerialNumber(xhpcHistoryOrder.getSerialNumber()); - xhpcInvoiceMapHistoryOrder.setPowerPriceTotal(xhpcHistoryOrder.getActPowerPrice()); - xhpcInvoiceMapHistoryOrder.setServicePriceTotal(xhpcHistoryOrder.getActServicePrice()); + xhpcInvoiceMapHistoryOrder.setHistorySerialNumber(xhpcHistoryOrder.getSerialNumber()); + xhpcInvoiceMapHistoryOrder.setPowerPriceTotal(xhpcHistoryOrder.getPowerPriceTotal()); + xhpcInvoiceMapHistoryOrder.setServicePriceTotal(BigDecimal.valueOf(xhpcHistoryOrder.getServicePriceTotal().doubleValue() - xhpcHistoryOrder.getPromotionDiscount().doubleValue())); xhpcInvoiceMapHistoryOrder.setPromotionDiscount(xhpcHistoryOrder.getPromotionDiscount()); xhpcInvoiceMapHistoryOrder.setHistoryActPrice(xhpcHistoryOrder.getActPrice()); xhpcInvoiceMapHistoryOrder.setCreateTime(xhpcHistoryOrder.getCreateTime()); @@ -450,16 +463,16 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { xhpcInvoiceMapHistoryOrder.setTerminalId(xhpcHistoryOrder.getTerminalId()); xhpcInvoiceMapHistoryOrder.setLockFlag(InvoiceMapHistoryOrderStatusConst.LOCK); xhpcInvoiceMapHistoryOrderMapper.insertSelective(xhpcInvoiceMapHistoryOrder); - totalPowerPrice += xhpcHistoryOrder.getActPowerPrice().doubleValue(); - totalServicePrice += xhpcHistoryOrder.getActServicePrice().doubleValue(); - totalActPrice += xhpcHistoryOrder.getActPrice().doubleValue(); + totalPowerPrice += xhpcHistoryOrder.getPowerPriceTotal().doubleValue(); + totalServicePrice += (xhpcHistoryOrder.getServicePriceTotal().doubleValue() - xhpcHistoryOrder.getPromotionDiscount().doubleValue()); + totalActPrice += xhpcHistoryOrder.getTotalPrice().doubleValue(); } if (!BigDecimal.valueOf(totalActPrice).equals(saveInvoiceInfoRequest.getInvoiceMoney())) { throw new Exception("传入的发票金额与实际包含的历史订单总金额参数不匹配"); } xhpcInvoice.setInvoiceOrderEletricTotalMoney(BigDecimal.valueOf(totalPowerPrice)); xhpcInvoice.setInvoiceOrderServiceTotalMoney(BigDecimal.valueOf(totalServicePrice)); - xhpcInvoiceMapper.insertSelective(xhpcInvoice); + xhpcInvoiceMapper.updateElectricAndServiceById(xhpcInvoice); } /** @@ -591,7 +604,9 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { specificInvoiceWrap.setInvoiceMoney(xhpcInvoice.getInvoiceMoney()); specificInvoiceWrap.setInvoiceTotalEletricMoney(xhpcInvoice.getInvoiceOrderEletricTotalMoney()); specificInvoiceWrap.setInvoiceTotalServiceMoney(xhpcInvoice.getInvoiceOrderServiceTotalMoney()); - specificInvoiceWrap.setInvoicingTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, xhpcInvoice.getInvoicingTime())); + if (xhpcInvoice.getInvoicingTime() != null) { + specificInvoiceWrap.setInvoicingTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, xhpcInvoice.getInvoicingTime())); + } //处理包装类内层数据 specificInvoiceWrap.setHistoryOrders(new SpecificInvoiceWrap.HistoryOrdersDTO()); SpecificInvoiceWrap.HistoryOrdersDTO historyOrdersDTO = specificInvoiceWrap.getHistoryOrders(); @@ -608,7 +623,7 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { historyOrdersDataDTO.setHistoryCreateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, xhpcInvoiceMapHistoryOrder.getCreateTime())); historyOrdersDataDTO.setServiceMoney(xhpcInvoiceMapHistoryOrder.getServicePriceTotal()); historyOrdersDataDTO.setEletricMoney(xhpcInvoiceMapHistoryOrder.getPowerPriceTotal()); - historyOrdersDataDTO.setHistorySerialNumber(xhpcInvoiceMapHistoryOrder.getHisotrySerialNumber()); + historyOrdersDataDTO.setHistorySerialNumber(xhpcInvoiceMapHistoryOrder.getHistorySerialNumber()); XhpcChargingStation xhpcChargingStation = xhpcChargingStationMapper.selectXhpcChargingStationById(xhpcInvoiceMapHistoryOrder.getChargingStationId()); Map operatorInfo = xhpcOperatorMapper.info(xhpcChargingStation.getOperatorId()); String operatorName = (String) operatorInfo.get("name"); diff --git a/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcHistoryOrderMapper.xml b/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcHistoryOrderMapper.xml index f9748596..d273a0b1 100644 --- a/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcHistoryOrderMapper.xml @@ -53,21 +53,67 @@ + history_order_id - , charging_station_id, charge_order_id, user_id, terminal_id, serial_number, - internet_serial_number, power_price_total, service_price_total, total_price, promotion_discount, - act_price, act_power_price, act_service_price, internet_commission, internet_svc_commission, - platform_commission, platform_svc_commisssion, operation_commission, operation_svc_commission, - start_soc, end_soc, reconciliation_status, sorting_status, `type`, `status`, del_flag, - create_time, create_by, update_time, update_by, remark, `state`, vin_normal, search_value, - operator_id_evcs, charge_model_evcs, connector_power_evcs, meter_value_end_evcs, - meter_value_start_evcs, operator_id3rdpty_evcs, start_time, stop_reason_evcs, total_power, - user_name_evcs, phone, rate_model_id + , + charging_station_id, + charge_order_id, + user_id, + terminal_id, + serial_number, + internet_serial_number, + power_price_total, + service_price_total, + total_price, + promotion_discount, + act_price, + act_power_price, + act_service_price, + internet_commission, + internet_svc_commission, + platform_commission, + platform_svc_commisssion, + operation_commission, + operation_svc_commission, + start_soc, + end_soc, + reconciliation_status, + sorting_status, + type, + status, + del_flag, + create_time, + create_by, + update_time, + update_by, + remark, + state, + vin_normal, + search_value, + operator_id_evcs, + charge_model_evcs, + connector_power_evcs, + meter_value_end_evcs, + meter_value_start_evcs, + operator_id3rdpty_evcs, + start_time, + end_time, + stop_reason_evcs, + total_power, + user_name_evcs, + phone, + evcs_order_no, + confirm_Result, + rate_model_id, + charging_mode, + internet_degree_commission, + source, + tenant_id - SELECT FROM xhpc_history_order WHERE - del_flag IS NULL - + del_flag = 0 + AND history_order_id IN - + #{historyOrderId} diff --git a/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapHistoryOrderMapper.xml b/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapHistoryOrderMapper.xml index 69bd1187..1fda4377 100644 --- a/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapHistoryOrderMapper.xml @@ -6,7 +6,7 @@ - + @@ -25,7 +25,7 @@ `history_order_id`, `history_user_id`, `history_user_type`, - `hisotry_serial_number`, + `history_serial_number`, `power_price_total`, `service_price_total`, `promotion_discount`, @@ -68,8 +68,8 @@ history_user_type, - - hisotry_serial_number, + + history_serial_number, power_price_total, @@ -115,8 +115,8 @@ #{historyUserType,jdbcType=BIGINT}, - - #{hisotrySerialNumber,jdbcType=VARCHAR}, + + #{historySerialNumber,jdbcType=VARCHAR}, #{powerPriceTotal,jdbcType=DECIMAL}, @@ -199,7 +199,7 @@ xhpc_invoice_map_history_order WHERE history_order_id IN - + #{historyOrderId} AND lock_flag = 0; diff --git a/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapper.xml b/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapper.xml index 05f75e36..1c3495ec 100644 --- a/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapper.xml +++ b/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapper.xml @@ -3,6 +3,7 @@ + @@ -72,6 +73,7 @@