From 982424cf13eea6ab4702a1626b3f1ad8a1c5f4dc Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Mon, 19 Feb 2024 16:05:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E8=AE=A1?= =?UTF-8?q?=E8=B4=B9=E6=A8=A1=E6=9D=BF=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...TimeEnum.java => BillingTimeTypeEnum.java} | 13 +++++- .../pile/domain/PileBillingDetail.java | 2 +- .../impl/OrderBasicInfoServiceImpl.java | 8 ++-- .../impl/PileBillingTemplateServiceImpl.java | 46 ++++++++++++++----- .../pile/vo/uniapp/BillingPriceVO.java | 4 +- .../mapper/pile/MemberGroupMapper.xml | 2 +- 6 files changed, 54 insertions(+), 21 deletions(-) rename jsowell-common/src/main/java/com/jsowell/common/enums/ykc/{BillingTimeEnum.java => BillingTimeTypeEnum.java} (62%) diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/BillingTimeEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/BillingTimeTypeEnum.java similarity index 62% rename from jsowell-common/src/main/java/com/jsowell/common/enums/ykc/BillingTimeEnum.java rename to jsowell-common/src/main/java/com/jsowell/common/enums/ykc/BillingTimeTypeEnum.java index 581502f9b..dd6c5d299 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/BillingTimeEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/BillingTimeTypeEnum.java @@ -4,7 +4,7 @@ package com.jsowell.common.enums.ykc; * 计费模板 时间类型 * (1-尖时;2-峰时;3-平时;4-谷时) */ -public enum BillingTimeEnum { +public enum BillingTimeTypeEnum { SHARP("1", "尖时"), PEAK("2", "峰时"), FLAT("3", "平时"), @@ -30,8 +30,17 @@ public enum BillingTimeEnum { this.label = label; } - BillingTimeEnum(String value, String label) { + BillingTimeTypeEnum(String value, String label) { this.value = value; this.label = label; } + + public static String getLabelByValue(String value) { + for (BillingTimeTypeEnum billingTimeEnum : BillingTimeTypeEnum.values()) { + if (billingTimeEnum.getValue().equals(value)) { + return billingTimeEnum.getLabel(); + } + } + return ""; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileBillingDetail.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileBillingDetail.java index 4571e5b80..b862746fe 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileBillingDetail.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileBillingDetail.java @@ -30,7 +30,7 @@ public class PileBillingDetail extends BaseEntity { /** * 时段类型(1-尖时;2-峰时;3-平时;4-谷时) */ - @Excel(name = "时段类型", readConverterExp = "1=-尖时;2-峰时;3-平时;4-谷时") + @Excel(name = "时段类型", readConverterExp = "1-尖时;2-峰时;3-平时;4-谷时") private String timeType; /** 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 052f93b4e..b0d758d25 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 @@ -2632,7 +2632,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { public List transformPeriodAmountByOrderDetail(OrderDetail orderDetail) { // 尖时段 OrderPeriodAmountVO sharp = new OrderPeriodAmountVO(); - sharp.setPeriodType(BillingTimeEnum.SHARP.getLabel()); + sharp.setPeriodType(BillingTimeTypeEnum.SHARP.getLabel()); sharp.setElectricityPrice(orderDetail.getSharpElectricityPrice()); sharp.setServicePrice(orderDetail.getSharpServicePrice()); BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getSharpUsedElectricity(); @@ -2642,7 +2642,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 峰时段 OrderPeriodAmountVO peak = new OrderPeriodAmountVO(); - peak.setPeriodType(BillingTimeEnum.PEAK.getLabel()); + peak.setPeriodType(BillingTimeTypeEnum.PEAK.getLabel()); peak.setElectricityPrice(orderDetail.getPeakElectricityPrice()); peak.setServicePrice(orderDetail.getPeakServicePrice()); BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getPeakUsedElectricity(); @@ -2652,7 +2652,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 平时段 OrderPeriodAmountVO flat = new OrderPeriodAmountVO(); - flat.setPeriodType(BillingTimeEnum.FLAT.getLabel()); + flat.setPeriodType(BillingTimeTypeEnum.FLAT.getLabel()); flat.setElectricityPrice(orderDetail.getFlatElectricityPrice()); flat.setServicePrice(orderDetail.getFlatServicePrice()); BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getFlatUsedElectricity(); @@ -2662,7 +2662,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 谷时段 OrderPeriodAmountVO valley = new OrderPeriodAmountVO(); - valley.setPeriodType(BillingTimeEnum.VALLEY.getLabel()); + valley.setPeriodType(BillingTimeTypeEnum.VALLEY.getLabel()); valley.setElectricityPrice(orderDetail.getValleyElectricityPrice()); valley.setServicePrice(orderDetail.getValleyServicePrice()); BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getValleyUsedElectricity(); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBillingTemplateServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBillingTemplateServiceImpl.java index 3ee26302f..aa98b485c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBillingTemplateServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBillingTemplateServiceImpl.java @@ -9,7 +9,7 @@ import com.jsowell.common.constant.Constants; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.enums.DelFlagEnum; -import com.jsowell.common.enums.ykc.BillingTimeEnum; +import com.jsowell.common.enums.ykc.BillingTimeTypeEnum; import com.jsowell.common.util.*; import com.jsowell.common.util.id.Seq; import com.jsowell.pile.domain.PileBillingDetail; @@ -188,7 +188,7 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic // 计费模板详情 List detailList = Lists.newArrayList(); PileBillingDetail detail = null; - for (BillingTimeEnum billingTimeEnum : BillingTimeEnum.values()) { + for (BillingTimeTypeEnum billingTimeEnum : BillingTimeTypeEnum.values()) { detail = new PileBillingDetail(); detail.setTemplateCode(templateCode); String type = billingTimeEnum.getValue(); // 时段类型 @@ -208,6 +208,9 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic detailList.add(detail); } + // 生成备注 + billingTemplate.setRemark(generateRemark(detailList)); + BillingTemplateTransactionDTO build = BillingTemplateTransactionDTO.builder() .billingTemplate(billingTemplate) .detailList(detailList) @@ -248,6 +251,9 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic // 生成计费详情list List pileBillingDetails = generateBillingDetailList(billingTemplate.getTemplateCode(), dto); + // 生成备注 + billingTemplate.setRemark(generateRemark(pileBillingDetails)); + BillingTemplateTransactionDTO build = BillingTemplateTransactionDTO.builder() .billingTemplate(billingTemplate) .detailList(pileBillingDetails) @@ -269,7 +275,7 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic // 计费模板详情 List detailList = Lists.newArrayList(); PileBillingDetail detail = null; - for (BillingTimeEnum billingTimeEnum : BillingTimeEnum.values()) { + for (BillingTimeTypeEnum billingTimeEnum : BillingTimeTypeEnum.values()) { detail = new PileBillingDetail(); detail.setTemplateCode(templateCode); String type = billingTimeEnum.getValue(); // 时段类型 @@ -316,16 +322,16 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic String type = billingDetail.getTimeType(); BigDecimal electricityPrice = billingDetail.getElectricityPrice(); BigDecimal servicePrice = billingDetail.getServicePrice(); - if (StringUtils.equals(type, BillingTimeEnum.SHARP.getValue())) { + if (StringUtils.equals(type, BillingTimeTypeEnum.SHARP.getValue())) { result.setElectricityPriceA(electricityPrice); result.setServicePriceA(servicePrice); - } else if (StringUtils.equals(type, BillingTimeEnum.PEAK.getValue())) { + } else if (StringUtils.equals(type, BillingTimeTypeEnum.PEAK.getValue())) { result.setElectricityPriceB(electricityPrice); result.setServicePriceB(servicePrice); - } else if (StringUtils.equals(type, BillingTimeEnum.FLAT.getValue())) { + } else if (StringUtils.equals(type, BillingTimeTypeEnum.FLAT.getValue())) { result.setElectricityPriceC(electricityPrice); result.setServicePriceC(servicePrice); - } else if (StringUtils.equals(type, BillingTimeEnum.VALLEY.getValue())) { + } else if (StringUtils.equals(type, BillingTimeTypeEnum.VALLEY.getValue())) { result.setElectricityPriceD(electricityPrice); result.setServicePriceD(servicePrice); } @@ -457,6 +463,9 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic // 计费模板收费详情 List stationBillingDetailList = generateBillingDetailList(templateCode, dto); + // 生成备注 + stationBillingTemplate.setRemark(generateRemark(stationBillingDetailList)); + // 入库 BillingTemplateTransactionDTO billingTemplateTransactionDTO = new BillingTemplateTransactionDTO(); billingTemplateTransactionDTO.setBillingTemplate(stationBillingTemplate); @@ -615,16 +624,16 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic for (BillingTimeDTO billingTimeDTO : timeArray) { BillingPriceVO vo = new BillingPriceVO(); String type = billingTimeDTO.getType(); - if (StringUtils.equals(type, BillingTimeEnum.SHARP.getValue())) { + if (StringUtils.equals(type, BillingTimeTypeEnum.SHARP.getValue())) { vo.setElectricityPrice(billingTemplateVO.getSharpElectricityPrice().toString()); vo.setServicePrice(billingTemplateVO.getSharpServicePrice().toString()); - } else if (StringUtils.equals(type, BillingTimeEnum.PEAK.getValue())) { + } else if (StringUtils.equals(type, BillingTimeTypeEnum.PEAK.getValue())) { vo.setElectricityPrice(billingTemplateVO.getPeakElectricityPrice().toString()); vo.setServicePrice(billingTemplateVO.getPeakServicePrice().toString()); - } else if (StringUtils.equals(type, BillingTimeEnum.FLAT.getValue())) { + } else if (StringUtils.equals(type, BillingTimeTypeEnum.FLAT.getValue())) { vo.setElectricityPrice(billingTemplateVO.getFlatElectricityPrice().toString()); vo.setServicePrice(billingTemplateVO.getFlatServicePrice().toString()); - } else if (StringUtils.equals(type, BillingTimeEnum.VALLEY.getValue())) { + } else if (StringUtils.equals(type, BillingTimeTypeEnum.VALLEY.getValue())) { vo.setElectricityPrice(billingTemplateVO.getValleyElectricityPrice().toString()); vo.setServicePrice(billingTemplateVO.getValleyServicePrice().toString()); } @@ -707,6 +716,8 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic pileBillingDetail.setDelFlag(DelFlagEnum.NORMAL.getValue()); stationBillingDetailList.add(pileBillingDetail); } + // 生成备注 + stationBillingTemplate.setRemark(generateRemark(stationBillingDetailList)); // 入库 BillingTemplateTransactionDTO billingTemplateTransactionDTO = new BillingTemplateTransactionDTO(); billingTemplateTransactionDTO.setBillingTemplate(stationBillingTemplate); @@ -715,6 +726,19 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic return true; } + // 根据设置的价格自动生成计费模板 + private String generateRemark(List list) { + StringBuilder remark = new StringBuilder(); + for (PileBillingDetail pileBillingDetail : list) { + String timeType = pileBillingDetail.getTimeType(); + String label = BillingTimeTypeEnum.getLabelByValue(timeType); + remark.append(label).append("-"); + remark.append(pileBillingDetail.getServicePrice().add(pileBillingDetail.getServicePrice())); + remark.append("元; "); + } + return remark.toString(); + } + @Override public byte[] generateBillingTemplateMsgBody(String pileSn, BillingTemplateVO billingTemplateVO) { if (StringUtils.isBlank(pileSn) || billingTemplateVO == null) { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/BillingPriceVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/BillingPriceVO.java index fee58ec53..c96ca2804 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/BillingPriceVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/BillingPriceVO.java @@ -1,6 +1,6 @@ package com.jsowell.pile.vo.uniapp; -import com.jsowell.common.enums.ykc.BillingTimeEnum; +import com.jsowell.common.enums.ykc.BillingTimeTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -44,7 +44,7 @@ public class BillingPriceVO { /** * 时段类型(1-尖时;2-峰时;3-平时;4-谷时) - * @see BillingTimeEnum + * @see BillingTimeTypeEnum */ private String timeType; diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberGroupMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberGroupMapper.xml index 326458b45..4c88d854b 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberGroupMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberGroupMapper.xml @@ -235,7 +235,7 @@ t2.remark FROM pile_station_info t1 - JOIN pile_billing_template t2 ON t2.station_id = t1.id AND t2.del_flag = '0' AND t2.member_flag = '1' + JOIN pile_billing_template t2 ON t2.station_id = t1.id AND t2.del_flag = '0' AND t2.member_flag = '1' WHERE FIND_IN_SET(t1.id, (SELECT station_id FROM member_group WHERE group_code = #{groupCode,jdbcType=VARCHAR}))