自动生成计费模板备注

This commit is contained in:
2024-02-19 16:05:28 +08:00
parent ba6305e642
commit 982424cf13
6 changed files with 54 additions and 21 deletions

View File

@@ -4,7 +4,7 @@ package com.jsowell.common.enums.ykc;
* 计费模板 时间类型 * 计费模板 时间类型
* 1-尖时2-峰时3-平时4-谷时 * 1-尖时2-峰时3-平时4-谷时
*/ */
public enum BillingTimeEnum { public enum BillingTimeTypeEnum {
SHARP("1", "尖时"), SHARP("1", "尖时"),
PEAK("2", "峰时"), PEAK("2", "峰时"),
FLAT("3", "平时"), FLAT("3", "平时"),
@@ -30,8 +30,17 @@ public enum BillingTimeEnum {
this.label = label; this.label = label;
} }
BillingTimeEnum(String value, String label) { BillingTimeTypeEnum(String value, String label) {
this.value = value; this.value = value;
this.label = label; this.label = label;
} }
public static String getLabelByValue(String value) {
for (BillingTimeTypeEnum billingTimeEnum : BillingTimeTypeEnum.values()) {
if (billingTimeEnum.getValue().equals(value)) {
return billingTimeEnum.getLabel();
}
}
return "";
}
} }

View File

@@ -30,7 +30,7 @@ public class PileBillingDetail extends BaseEntity {
/** /**
* 时段类型1-尖时2-峰时3-平时4-谷时) * 时段类型1-尖时2-峰时3-平时4-谷时)
*/ */
@Excel(name = "时段类型", readConverterExp = "1=-尖时2-峰时3-平时4-谷时") @Excel(name = "时段类型", readConverterExp = "1-尖时2-峰时3-平时4-谷时")
private String timeType; private String timeType;
/** /**

View File

@@ -2632,7 +2632,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
public List<OrderPeriodAmountVO> transformPeriodAmountByOrderDetail(OrderDetail orderDetail) { public List<OrderPeriodAmountVO> transformPeriodAmountByOrderDetail(OrderDetail orderDetail) {
// 尖时段 // 尖时段
OrderPeriodAmountVO sharp = new OrderPeriodAmountVO(); OrderPeriodAmountVO sharp = new OrderPeriodAmountVO();
sharp.setPeriodType(BillingTimeEnum.SHARP.getLabel()); sharp.setPeriodType(BillingTimeTypeEnum.SHARP.getLabel());
sharp.setElectricityPrice(orderDetail.getSharpElectricityPrice()); sharp.setElectricityPrice(orderDetail.getSharpElectricityPrice());
sharp.setServicePrice(orderDetail.getSharpServicePrice()); sharp.setServicePrice(orderDetail.getSharpServicePrice());
BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getSharpUsedElectricity(); BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getSharpUsedElectricity();
@@ -2642,7 +2642,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
// 峰时段 // 峰时段
OrderPeriodAmountVO peak = new OrderPeriodAmountVO(); OrderPeriodAmountVO peak = new OrderPeriodAmountVO();
peak.setPeriodType(BillingTimeEnum.PEAK.getLabel()); peak.setPeriodType(BillingTimeTypeEnum.PEAK.getLabel());
peak.setElectricityPrice(orderDetail.getPeakElectricityPrice()); peak.setElectricityPrice(orderDetail.getPeakElectricityPrice());
peak.setServicePrice(orderDetail.getPeakServicePrice()); peak.setServicePrice(orderDetail.getPeakServicePrice());
BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getPeakUsedElectricity(); BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getPeakUsedElectricity();
@@ -2652,7 +2652,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
// 平时段 // 平时段
OrderPeriodAmountVO flat = new OrderPeriodAmountVO(); OrderPeriodAmountVO flat = new OrderPeriodAmountVO();
flat.setPeriodType(BillingTimeEnum.FLAT.getLabel()); flat.setPeriodType(BillingTimeTypeEnum.FLAT.getLabel());
flat.setElectricityPrice(orderDetail.getFlatElectricityPrice()); flat.setElectricityPrice(orderDetail.getFlatElectricityPrice());
flat.setServicePrice(orderDetail.getFlatServicePrice()); flat.setServicePrice(orderDetail.getFlatServicePrice());
BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getFlatUsedElectricity(); BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getFlatUsedElectricity();
@@ -2662,7 +2662,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
// 谷时段 // 谷时段
OrderPeriodAmountVO valley = new OrderPeriodAmountVO(); OrderPeriodAmountVO valley = new OrderPeriodAmountVO();
valley.setPeriodType(BillingTimeEnum.VALLEY.getLabel()); valley.setPeriodType(BillingTimeTypeEnum.VALLEY.getLabel());
valley.setElectricityPrice(orderDetail.getValleyElectricityPrice()); valley.setElectricityPrice(orderDetail.getValleyElectricityPrice());
valley.setServicePrice(orderDetail.getValleyServicePrice()); valley.setServicePrice(orderDetail.getValleyServicePrice());
BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getValleyUsedElectricity(); BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getValleyUsedElectricity();

View File

@@ -9,7 +9,7 @@ import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.DelFlagEnum; 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.*;
import com.jsowell.common.util.id.Seq; import com.jsowell.common.util.id.Seq;
import com.jsowell.pile.domain.PileBillingDetail; import com.jsowell.pile.domain.PileBillingDetail;
@@ -188,7 +188,7 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
// 计费模板详情 // 计费模板详情
List<PileBillingDetail> detailList = Lists.newArrayList(); List<PileBillingDetail> detailList = Lists.newArrayList();
PileBillingDetail detail = null; PileBillingDetail detail = null;
for (BillingTimeEnum billingTimeEnum : BillingTimeEnum.values()) { for (BillingTimeTypeEnum billingTimeEnum : BillingTimeTypeEnum.values()) {
detail = new PileBillingDetail(); detail = new PileBillingDetail();
detail.setTemplateCode(templateCode); detail.setTemplateCode(templateCode);
String type = billingTimeEnum.getValue(); // 时段类型 String type = billingTimeEnum.getValue(); // 时段类型
@@ -208,6 +208,9 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
detailList.add(detail); detailList.add(detail);
} }
// 生成备注
billingTemplate.setRemark(generateRemark(detailList));
BillingTemplateTransactionDTO build = BillingTemplateTransactionDTO.builder() BillingTemplateTransactionDTO build = BillingTemplateTransactionDTO.builder()
.billingTemplate(billingTemplate) .billingTemplate(billingTemplate)
.detailList(detailList) .detailList(detailList)
@@ -248,6 +251,9 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
// 生成计费详情list // 生成计费详情list
List<PileBillingDetail> pileBillingDetails = generateBillingDetailList(billingTemplate.getTemplateCode(), dto); List<PileBillingDetail> pileBillingDetails = generateBillingDetailList(billingTemplate.getTemplateCode(), dto);
// 生成备注
billingTemplate.setRemark(generateRemark(pileBillingDetails));
BillingTemplateTransactionDTO build = BillingTemplateTransactionDTO.builder() BillingTemplateTransactionDTO build = BillingTemplateTransactionDTO.builder()
.billingTemplate(billingTemplate) .billingTemplate(billingTemplate)
.detailList(pileBillingDetails) .detailList(pileBillingDetails)
@@ -269,7 +275,7 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
// 计费模板详情 // 计费模板详情
List<PileBillingDetail> detailList = Lists.newArrayList(); List<PileBillingDetail> detailList = Lists.newArrayList();
PileBillingDetail detail = null; PileBillingDetail detail = null;
for (BillingTimeEnum billingTimeEnum : BillingTimeEnum.values()) { for (BillingTimeTypeEnum billingTimeEnum : BillingTimeTypeEnum.values()) {
detail = new PileBillingDetail(); detail = new PileBillingDetail();
detail.setTemplateCode(templateCode); detail.setTemplateCode(templateCode);
String type = billingTimeEnum.getValue(); // 时段类型 String type = billingTimeEnum.getValue(); // 时段类型
@@ -316,16 +322,16 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
String type = billingDetail.getTimeType(); String type = billingDetail.getTimeType();
BigDecimal electricityPrice = billingDetail.getElectricityPrice(); BigDecimal electricityPrice = billingDetail.getElectricityPrice();
BigDecimal servicePrice = billingDetail.getServicePrice(); BigDecimal servicePrice = billingDetail.getServicePrice();
if (StringUtils.equals(type, BillingTimeEnum.SHARP.getValue())) { if (StringUtils.equals(type, BillingTimeTypeEnum.SHARP.getValue())) {
result.setElectricityPriceA(electricityPrice); result.setElectricityPriceA(electricityPrice);
result.setServicePriceA(servicePrice); result.setServicePriceA(servicePrice);
} else if (StringUtils.equals(type, BillingTimeEnum.PEAK.getValue())) { } else if (StringUtils.equals(type, BillingTimeTypeEnum.PEAK.getValue())) {
result.setElectricityPriceB(electricityPrice); result.setElectricityPriceB(electricityPrice);
result.setServicePriceB(servicePrice); result.setServicePriceB(servicePrice);
} else if (StringUtils.equals(type, BillingTimeEnum.FLAT.getValue())) { } else if (StringUtils.equals(type, BillingTimeTypeEnum.FLAT.getValue())) {
result.setElectricityPriceC(electricityPrice); result.setElectricityPriceC(electricityPrice);
result.setServicePriceC(servicePrice); result.setServicePriceC(servicePrice);
} else if (StringUtils.equals(type, BillingTimeEnum.VALLEY.getValue())) { } else if (StringUtils.equals(type, BillingTimeTypeEnum.VALLEY.getValue())) {
result.setElectricityPriceD(electricityPrice); result.setElectricityPriceD(electricityPrice);
result.setServicePriceD(servicePrice); result.setServicePriceD(servicePrice);
} }
@@ -457,6 +463,9 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
// 计费模板收费详情 // 计费模板收费详情
List<PileBillingDetail> stationBillingDetailList = generateBillingDetailList(templateCode, dto); List<PileBillingDetail> stationBillingDetailList = generateBillingDetailList(templateCode, dto);
// 生成备注
stationBillingTemplate.setRemark(generateRemark(stationBillingDetailList));
// 入库 // 入库
BillingTemplateTransactionDTO billingTemplateTransactionDTO = new BillingTemplateTransactionDTO(); BillingTemplateTransactionDTO billingTemplateTransactionDTO = new BillingTemplateTransactionDTO();
billingTemplateTransactionDTO.setBillingTemplate(stationBillingTemplate); billingTemplateTransactionDTO.setBillingTemplate(stationBillingTemplate);
@@ -615,16 +624,16 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
for (BillingTimeDTO billingTimeDTO : timeArray) { for (BillingTimeDTO billingTimeDTO : timeArray) {
BillingPriceVO vo = new BillingPriceVO(); BillingPriceVO vo = new BillingPriceVO();
String type = billingTimeDTO.getType(); String type = billingTimeDTO.getType();
if (StringUtils.equals(type, BillingTimeEnum.SHARP.getValue())) { if (StringUtils.equals(type, BillingTimeTypeEnum.SHARP.getValue())) {
vo.setElectricityPrice(billingTemplateVO.getSharpElectricityPrice().toString()); vo.setElectricityPrice(billingTemplateVO.getSharpElectricityPrice().toString());
vo.setServicePrice(billingTemplateVO.getSharpServicePrice().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.setElectricityPrice(billingTemplateVO.getPeakElectricityPrice().toString());
vo.setServicePrice(billingTemplateVO.getPeakServicePrice().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.setElectricityPrice(billingTemplateVO.getFlatElectricityPrice().toString());
vo.setServicePrice(billingTemplateVO.getFlatServicePrice().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.setElectricityPrice(billingTemplateVO.getValleyElectricityPrice().toString());
vo.setServicePrice(billingTemplateVO.getValleyServicePrice().toString()); vo.setServicePrice(billingTemplateVO.getValleyServicePrice().toString());
} }
@@ -707,6 +716,8 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
pileBillingDetail.setDelFlag(DelFlagEnum.NORMAL.getValue()); pileBillingDetail.setDelFlag(DelFlagEnum.NORMAL.getValue());
stationBillingDetailList.add(pileBillingDetail); stationBillingDetailList.add(pileBillingDetail);
} }
// 生成备注
stationBillingTemplate.setRemark(generateRemark(stationBillingDetailList));
// 入库 // 入库
BillingTemplateTransactionDTO billingTemplateTransactionDTO = new BillingTemplateTransactionDTO(); BillingTemplateTransactionDTO billingTemplateTransactionDTO = new BillingTemplateTransactionDTO();
billingTemplateTransactionDTO.setBillingTemplate(stationBillingTemplate); billingTemplateTransactionDTO.setBillingTemplate(stationBillingTemplate);
@@ -715,6 +726,19 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
return true; return true;
} }
// 根据设置的价格自动生成计费模板
private String generateRemark(List<PileBillingDetail> 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 @Override
public byte[] generateBillingTemplateMsgBody(String pileSn, BillingTemplateVO billingTemplateVO) { public byte[] generateBillingTemplateMsgBody(String pileSn, BillingTemplateVO billingTemplateVO) {
if (StringUtils.isBlank(pileSn) || billingTemplateVO == null) { if (StringUtils.isBlank(pileSn) || billingTemplateVO == null) {

View File

@@ -1,6 +1,6 @@
package com.jsowell.pile.vo.uniapp; 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.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -44,7 +44,7 @@ public class BillingPriceVO {
/** /**
* 时段类型1-尖时2-峰时3-平时4-谷时) * 时段类型1-尖时2-峰时3-平时4-谷时)
* @see BillingTimeEnum * @see BillingTimeTypeEnum
*/ */
private String timeType; private String timeType;