自动生成计费模板备注

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-谷时
*/
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 "";
}
}

View File

@@ -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;
/**

View File

@@ -2632,7 +2632,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
public List<OrderPeriodAmountVO> 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();

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.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<PileBillingDetail> 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<PileBillingDetail> 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<PileBillingDetail> 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<PileBillingDetail> 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<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
public byte[] generateBillingTemplateMsgBody(String pileSn, BillingTemplateVO billingTemplateVO) {
if (StringUtils.isBlank(pileSn) || billingTemplateVO == null) {

View File

@@ -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;

View File

@@ -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}))
</select>