This commit is contained in:
parent
6163532f39
commit
aa5b0b9478
@ -4,6 +4,8 @@ import org.dromara.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import java.io.Serial;
|
||||
@ -48,6 +50,11 @@ public class CostCarCharge extends TenantEntity {
|
||||
*/
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 应收金额
|
||||
*/
|
||||
private BigDecimal amountReceivable;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
|
@ -8,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
@ -53,7 +55,7 @@ public class CostHouseChargeBo extends BaseEntity {
|
||||
/**
|
||||
* 应收金额
|
||||
*/
|
||||
private Long amountReceivable;
|
||||
private BigDecimal amountReceivable;
|
||||
|
||||
/**
|
||||
* 计费开始时间
|
||||
@ -75,10 +77,6 @@ public class CostHouseChargeBo extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 搜索值
|
||||
*/
|
||||
private String searchValue;
|
||||
|
||||
|
||||
}
|
||||
|
@ -74,11 +74,13 @@ public class CostItemsBo extends BaseEntity {
|
||||
/**
|
||||
* 进位方式
|
||||
*/
|
||||
@NotBlank(message = "进位方式不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String roundingMode;
|
||||
|
||||
/**
|
||||
* 保留小数
|
||||
*/
|
||||
@NotBlank(message = "保留小数不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String currencyDecimals;
|
||||
|
||||
/**
|
||||
@ -89,11 +91,13 @@ public class CostItemsBo extends BaseEntity {
|
||||
/**
|
||||
* 计算公式
|
||||
*/
|
||||
@NotBlank(message = "计算公式不能", groups = { AddGroup.class, EditGroup.class })
|
||||
private String formula;
|
||||
|
||||
/**
|
||||
* 计费单价
|
||||
*/
|
||||
@NotBlank(message = "计费单价", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.property.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.property.domain.CostCarCharge;
|
||||
@ -60,6 +61,10 @@ public class CostCarChargeVo implements Serializable {
|
||||
@ExcelProperty(value = "车位")
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 应收金额
|
||||
*/
|
||||
private BigDecimal amountReceivable;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
|
@ -4,6 +4,8 @@ import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import org.dromara.property.domain.CostPayFeeAudit;
|
||||
|
||||
import java.io.Serial;
|
||||
@ -31,6 +33,7 @@ public class CostPayFeeAuditVo implements Serializable {
|
||||
* 主键
|
||||
*/
|
||||
@ExcelProperty(value = "主键")
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
@ -38,7 +41,12 @@ public class CostPayFeeAuditVo implements Serializable {
|
||||
*/
|
||||
@ExcelProperty(value = "房屋收费id")
|
||||
private Long houseChargeId;
|
||||
|
||||
/**
|
||||
* 费用类型
|
||||
*/
|
||||
@ExcelProperty(value = "费用类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "pro_expense_type")
|
||||
private String costType;
|
||||
/**
|
||||
* 房间号(如101,202)
|
||||
*/
|
||||
|
@ -76,7 +76,7 @@ public class TbRoomVo implements Serializable {
|
||||
* 面积(平方米)
|
||||
*/
|
||||
@ExcelProperty(value = "面积(平方米)")
|
||||
private Long area;
|
||||
private Float area;
|
||||
/**
|
||||
* 套内面积(平方米)
|
||||
*/
|
||||
|
@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.property.domain.vo.CostItemsVo;
|
||||
import org.dromara.property.mapper.CostItemsMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.property.domain.bo.CostCarChargeBo;
|
||||
import org.dromara.property.domain.vo.CostCarChargeVo;
|
||||
@ -16,6 +18,7 @@ import org.dromara.property.domain.CostCarCharge;
|
||||
import org.dromara.property.mapper.CostCarChargeMapper;
|
||||
import org.dromara.property.service.ICostCarChargeService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
@ -32,6 +35,8 @@ import java.util.Collection;
|
||||
public class CostCarChargeServiceImpl implements ICostCarChargeService {
|
||||
|
||||
private final CostCarChargeMapper baseMapper;
|
||||
private final CostItemsMapper costItemsMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 查询费用-车辆收费
|
||||
@ -95,6 +100,9 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
|
||||
@Override
|
||||
public Boolean insertByBo(CostCarChargeBo bo) {
|
||||
CostCarCharge add = MapstructUtils.convert(bo, CostCarCharge.class);
|
||||
CostItemsVo costItemsVo = costItemsMapper.selectVoById(add.getCostItemsId());
|
||||
BigDecimal unitPrice = costItemsVo.getUnitPrice();
|
||||
add.setAmountReceivable(unitPrice);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
|
@ -22,6 +22,8 @@ import org.dromara.property.domain.CostHouseCharge;
|
||||
import org.dromara.property.mapper.CostHouseChargeMapper;
|
||||
import org.dromara.property.service.ICostHouseChargeService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
@ -109,6 +111,24 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
|
||||
@Override
|
||||
public Boolean insertByBo(CostHouseChargeBo bo) {
|
||||
CostHouseCharge add = MapstructUtils.convert(bo, CostHouseCharge.class);
|
||||
//查询房间面积
|
||||
TbRoomVo tbRoomVo = tbRoomMapper.selectVoById(bo.getRoomId());
|
||||
BigDecimal area = new BigDecimal(tbRoomVo.getArea());
|
||||
CostItemsVo costItemsVo = costItemsMapper.selectVoById(add.getCostItemsId());
|
||||
BigDecimal unitPrice = costItemsVo.getUnitPrice();
|
||||
//向上取整
|
||||
if(costItemsVo.getRoundingMode().equals("1")){
|
||||
add.setAmountReceivable(area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale(Integer.valueOf(costItemsVo.getCurrencyDecimals()), BigDecimal.ROUND_UP).longValue());
|
||||
}
|
||||
//向下取整
|
||||
if(costItemsVo.getRoundingMode().equals("2")){
|
||||
add.setAmountReceivable( area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale(Integer.valueOf(costItemsVo.getCurrencyDecimals()), BigDecimal.ROUND_DOWN).longValue());
|
||||
}
|
||||
//四舍五入
|
||||
if(costItemsVo.getRoundingMode().equals("0")){
|
||||
add.setAmountReceivable(area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale( Integer.valueOf(costItemsVo.getCurrencyDecimals()), RoundingMode.HALF_UP).longValue());
|
||||
}
|
||||
//area
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
|
@ -1,5 +1,7 @@
|
||||
package org.dromara.property.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import org.checkerframework.checker.units.qual.C;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -11,14 +13,18 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.property.domain.CostPayFeeAudit;
|
||||
import org.dromara.property.domain.bo.CostPayFeeAuditBo;
|
||||
import org.dromara.property.domain.vo.CostPayFeeAuditVo;
|
||||
import org.dromara.property.domain.vo.*;
|
||||
import org.dromara.property.mapper.CostItemsMapper;
|
||||
import org.dromara.property.mapper.CostPayFeeAuditMapper;
|
||||
import org.dromara.property.mapper.TbRoomMapper;
|
||||
import org.dromara.property.service.ICostPayFeeAuditService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 费用-缴费审核Service业务层处理
|
||||
@ -32,6 +38,8 @@ import java.util.Collection;
|
||||
public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
|
||||
|
||||
private final CostPayFeeAuditMapper baseMapper;
|
||||
private final CostItemsMapper costItemsMapper;
|
||||
private final TbRoomMapper roomMapper;
|
||||
|
||||
/**
|
||||
* 查询费用-缴费审核
|
||||
@ -55,7 +63,30 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
|
||||
public TableDataInfo<CostPayFeeAuditVo> queryPageList(CostPayFeeAuditBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<CostPayFeeAudit> lqw = buildQueryWrapper(bo);
|
||||
Page<CostPayFeeAuditVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
List<Long> itemIdList = result.getRecords().stream()
|
||||
.map(vo -> vo.getItemId())
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
List<Long> roomIdList = result.getRecords().stream()
|
||||
.map(vo -> vo.getHouseChargeId())
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
List<CostItemsVo> costItemsVoList = costItemsMapper.selectVoByIds(itemIdList);
|
||||
List<TbRoomVo> roomVoList = roomMapper.selectVoByIds(roomIdList);
|
||||
List<CostPayFeeAuditVo> costPayFeeAuditVoList = new ArrayList<>();
|
||||
result.getRecords().stream().forEach(s -> {
|
||||
CostItemsVo costItemsVo = costItemsVoList.stream()
|
||||
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getItemId())).findFirst().orElse(null);
|
||||
s.setChargeItem(ObjectUtil.isNotEmpty(costItemsVo)?costItemsVo.getChargeItem():null);
|
||||
s.setCostType(ObjectUtil.isNotEmpty(costItemsVo)?costItemsVo.getCostType():null);
|
||||
s.setChargeCycle(ObjectUtil.isNotEmpty(costItemsVo)?costItemsVo.getChargeCycle():null);
|
||||
TbRoomVo tbRoomVo = roomVoList.stream()
|
||||
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getHouseChargeId())).findFirst().orElse(null);
|
||||
s.setRoomNumber(ObjectUtil.isNotEmpty(tbRoomVo)?tbRoomVo.getRoomNumber():null);
|
||||
|
||||
costPayFeeAuditVoList.add(s);
|
||||
});
|
||||
return TableDataInfo.build(new Page<CostPayFeeAuditVo>().setRecords(costPayFeeAuditVoList));
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user