Просмотр исходного кода

[账单][修改][修改滞纳金]

release_toaliyun_real
luozukai 6 лет назад
Родитель
Сommit
9ac42f0968
5 измененных файлов: 110 добавлений и 20 удалений
  1. +2
    -0
      mallinkAdmin/src/main/resources/db/migration/V201907301607__L_ALTER_BILL.sql
  2. +0
    -4
      mallinkSchedule/src/main/java/com/iformall/schedule/LatePayBillActionSchedule.java
  3. +54
    -7
      mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java
  4. +53
    -7
      mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java
  5. +1
    -2
      mallinkService/src/main/resources/mapper/WxBillRentMapper.xml

+ 2
- 0
mallinkAdmin/src/main/resources/db/migration/V201907301607__L_ALTER_BILL.sql Просмотреть файл

@@ -0,0 +1,2 @@
alter table wx_bill_action modify `createtime` DATETIME NULL DEFAULT CURRENT_TIMESTAMP;
alter table wx_bill_action modify `updatetime` DATETIME NULL DEFAULT CURRENT_TIMESTAMP;

+ 0
- 4
mallinkSchedule/src/main/java/com/iformall/schedule/LatePayBillActionSchedule.java Просмотреть файл

@@ -42,13 +42,11 @@ public class LatePayBillActionSchedule {
for (WxBillRent wxBillRent : billRentList) { for (WxBillRent wxBillRent : billRentList) {
WxBillAction billAction = new WxBillAction(); WxBillAction billAction = new WxBillAction();
billAction.setId(idWorker.nextId()); billAction.setId(idWorker.nextId());
billAction.setCreatetime(new Date());
billAction.setUserName("系统端"); billAction.setUserName("系统端");
billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode());
billAction.setBillId(wxBillRent.getId()); billAction.setBillId(wxBillRent.getId());
BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
billAction.setDetails("系统计入"+ divide.toString()+"元"); billAction.setDetails("系统计入"+ divide.toString()+"元");
billAction.setUpdatetime(new Date());
wxBillActionMapper.insertSelective(billAction); wxBillActionMapper.insertSelective(billAction);
} }


@@ -56,13 +54,11 @@ public class LatePayBillActionSchedule {
for (WxBillProperty wxBillRent : billPropertyList) { for (WxBillProperty wxBillRent : billPropertyList) {
WxBillAction billAction = new WxBillAction(); WxBillAction billAction = new WxBillAction();
billAction.setId(idWorker.nextId()); billAction.setId(idWorker.nextId());
billAction.setCreatetime(new Date());
billAction.setUserName("系统端"); billAction.setUserName("系统端");
billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode());
billAction.setBillId(wxBillRent.getId()); billAction.setBillId(wxBillRent.getId());
BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
billAction.setDetails("系统计入"+ divide.toString()+"元"); billAction.setDetails("系统计入"+ divide.toString()+"元");
billAction.setUpdatetime(new Date());
wxBillActionMapper.insertSelective(billAction); wxBillActionMapper.insertSelective(billAction);
} }
logger.info("账单滞纳金更新结束"); logger.info("账单滞纳金更新结束");


+ 54
- 7
mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java Просмотреть файл

@@ -58,15 +58,17 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService {
List<WxBillProperty> billRentList = wxBillPropertyMapper.queryBillPropertyList(record); List<WxBillProperty> billRentList = wxBillPropertyMapper.queryBillPropertyList(record);
PageInfo<WxBillProperty> pageInfo = new PageInfo<>(billRentList); PageInfo<WxBillProperty> pageInfo = new PageInfo<>(billRentList);
billRentList.stream().forEach(b -> { billRentList.stream().forEach(b -> {
if(EnumBillRentStatus.WAIT_PAY.getCode().equals(b.getLatePayStatus()) && b.getLatePayRatio() != null){
int latePayDay = 1; //默认第二天开始叫滞纳金
if(b.getLatePayRatio() != null && b.getLatePayRatio() > 0){
int latePayDay = 1; //默认第次日开始交滞纳金
if(b.getLatePayDay() != null){ if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay(); latePayDay = b.getLatePayDay();
} }
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay); Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(new Date(),startPay);
Double d = new Double(dayCount * b.getLatePayRatio()/10000 * b.getOwe());
b.setLatePayPrice(d.longValue());
long dayCount = DateUtils.startToEnd(startPay,new Date());
if(dayCount >0) {
BigDecimal divide = new BigDecimal(b.getOwe()).multiply(new BigDecimal(b.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
b.setLatePayPrice(divide.longValue());
}
} }
}); });
return pageInfo; return pageInfo;
@@ -116,7 +118,21 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService {
public WxBillProperty getById(Long id) { public WxBillProperty getById(Long id) {
WxBillProperty record = new WxBillProperty(); WxBillProperty record = new WxBillProperty();
record.setId(id); record.setId(id);
return wxBillPropertyMapper.queryBillPropertyList(record).get(0);
WxBillProperty b = wxBillPropertyMapper.queryBillPropertyList(record).get(0);

if(b.getLatePayRatio() != null && b.getLatePayRatio() > 0){
int latePayDay = 1; //默认第次日开始交滞纳金
if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay();
}
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(startPay,new Date());
if(dayCount >0) {
BigDecimal divide = new BigDecimal(b.getOwe()).multiply(new BigDecimal(b.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
b.setLatePayPrice(divide.longValue());
}
}
return b;
} }


@Override @Override
@@ -212,6 +228,20 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService {
updateBillStatus(record); updateBillStatus(record);
PageHelper.startPage(pageIndex, pageSize); PageHelper.startPage(pageIndex, pageSize);
List<WxBillProperty> billRentList = wxBillPropertyMapper.queryBillPropertyList(record); List<WxBillProperty> billRentList = wxBillPropertyMapper.queryBillPropertyList(record);
billRentList.stream().forEach(b -> {
if(b.getLatePayRatio() != null && b.getLatePayRatio() > 0){
int latePayDay = 1; //默认第次日开始交滞纳金
if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay();
}
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(startPay,new Date());
if(dayCount >0) {
BigDecimal divide = new BigDecimal(b.getOwe()).multiply(new BigDecimal(b.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
b.setLatePayPrice(divide.longValue());
}
}
});
PageInfo<WxBillProperty> pageInfo = new PageInfo<>(billRentList); PageInfo<WxBillProperty> pageInfo = new PageInfo<>(billRentList);
return pageInfo; return pageInfo;
} }
@@ -271,7 +301,24 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService {
@Override @Override
public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty) { public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty) {
String billName = wxBillProperty.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺物业账单" : "多经点位物业账单"; String billName = wxBillProperty.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺物业账单" : "多经点位物业账单";
Map<Long, List<WxBillProperty>> collect = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty).parallelStream()

List<WxBillProperty> billPropertyList = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty);
billPropertyList.stream().forEach(b -> {
if(b.getLatePayRatio() != null && b.getLatePayRatio() > 0){
int latePayDay = 1; //默认第次日开始交滞纳金
if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay();
}
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(startPay,new Date());
if(dayCount >0) {
BigDecimal divide = new BigDecimal(b.getOwe()).multiply(new BigDecimal(b.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
b.setLatePayPrice(divide.longValue());
}
}
});

Map<Long, List<WxBillProperty>> collect = billPropertyList.parallelStream()
.collect(Collectors.groupingBy(WxBillProperty::getMerchantId)); .collect(Collectors.groupingBy(WxBillProperty::getMerchantId));
Set<Map.Entry<Long, List<WxBillProperty>>> entries = collect.entrySet(); Set<Map.Entry<Long, List<WxBillProperty>>> entries = collect.entrySet();
List<WxBillProperty> datalist = new ArrayList<>(); List<WxBillProperty> datalist = new ArrayList<>();


+ 53
- 7
mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java Просмотреть файл

@@ -57,15 +57,17 @@ public class WxBillRentServiceImpl implements WxBillRentService {
PageHelper.startPage(pageIndex, pageSize); PageHelper.startPage(pageIndex, pageSize);
List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(record); List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(record);
billRentList.stream().forEach(b -> { billRentList.stream().forEach(b -> {
if(EnumBillRentStatus.WAIT_PAY.getCode().equals(b.getLatePayStatus()) && b.getLatePayRatio() != null){
int latePayDay = 1; //默认第二天开始叫滞纳金
if(b.getLatePayRatio() != null && b.getLatePayRatio() > 0){
int latePayDay = 1; //默认第次日开始交滞纳金
if(b.getLatePayDay() != null){ if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay(); latePayDay = b.getLatePayDay();
} }
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay); Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(new Date(),startPay);
Double d = new Double(dayCount * b.getLatePayRatio()/10000 * b.getOwe());
b.setLatePayPrice(d.longValue());
long dayCount = DateUtils.startToEnd(startPay,new Date());
if(dayCount >0) {
BigDecimal divide = new BigDecimal(b.getOwe()).multiply(new BigDecimal(b.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
b.setLatePayPrice(divide.longValue());
}
} }
}); });
PageInfo<WxBillRent> pageInfo = new PageInfo<>(billRentList); PageInfo<WxBillRent> pageInfo = new PageInfo<>(billRentList);
@@ -116,7 +118,21 @@ public class WxBillRentServiceImpl implements WxBillRentService {
public WxBillRent getById(Long id) { public WxBillRent getById(Long id) {
WxBillRent record = new WxBillRent(); WxBillRent record = new WxBillRent();
record.setId(id); record.setId(id);
return wxBillRentMapper.queryBillRentList(record).get(0);
WxBillRent b = wxBillRentMapper.queryBillRentList(record).get(0);

if(b.getLatePayRatio() != null && b.getLatePayRatio() > 0){
int latePayDay = 1; //默认第次日开始交滞纳金
if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay();
}
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(startPay,new Date());
if(dayCount >0) {
BigDecimal divide = new BigDecimal(b.getOwe()).multiply(new BigDecimal(b.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
b.setLatePayPrice(divide.longValue());
}
}
return b;
} }


@Override @Override
@@ -211,6 +227,20 @@ public class WxBillRentServiceImpl implements WxBillRentService {
updateBillStatus(record); updateBillStatus(record);
PageHelper.startPage(pageIndex, pageSize); PageHelper.startPage(pageIndex, pageSize);
List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(record); List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(record);
billRentList.stream().forEach(b -> {
if(b.getLatePayRatio() != null && b.getLatePayRatio() > 0){
int latePayDay = 1; //默认第次日开始交滞纳金
if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay();
}
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(startPay,new Date());
if(dayCount >0) {
BigDecimal divide = new BigDecimal(b.getOwe()).multiply(new BigDecimal(b.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
b.setLatePayPrice(divide.longValue());
}
}
});
PageInfo<WxBillRent> pageInfo = new PageInfo<>(billRentList); PageInfo<WxBillRent> pageInfo = new PageInfo<>(billRentList);
return pageInfo; return pageInfo;
} }
@@ -307,7 +337,23 @@ public class WxBillRentServiceImpl implements WxBillRentService {
@Override @Override
public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent) { public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent) {
String billName = wxBillRent.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺租金账单" : "多经点位租金账单"; String billName = wxBillRent.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺租金账单" : "多经点位租金账单";
Map<Long, List<WxBillRent>> collect = wxBillRentMapper.queryBillRentList(wxBillRent).parallelStream()
List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent);
billRentList.stream().forEach(b -> {
if(b.getLatePayRatio() != null && b.getLatePayRatio() > 0){
int latePayDay = 1; //默认第次日开始交滞纳金
if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay();
}
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(startPay,new Date());
if(dayCount >0) {
BigDecimal divide = new BigDecimal(b.getOwe()).multiply(new BigDecimal(b.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
b.setLatePayPrice(divide.longValue());
}
}
});

Map<Long, List<WxBillRent>> collect = billRentList.parallelStream()
.collect(Collectors.groupingBy(WxBillRent::getMerchantId)); .collect(Collectors.groupingBy(WxBillRent::getMerchantId));
Set<Map.Entry<Long, List<WxBillRent>>> entries = collect.entrySet(); Set<Map.Entry<Long, List<WxBillRent>>> entries = collect.entrySet();
List<WxBillRent> datalist = new ArrayList<>(); List<WxBillRent> datalist = new ArrayList<>();


+ 1
- 2
mallinkService/src/main/resources/mapper/WxBillRentMapper.xml Просмотреть файл

@@ -97,8 +97,7 @@
case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,r.merchant_name, case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,r.merchant_name,
s.shop_number,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,r.type as rent_type, s.shop_number,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,r.type as rent_type,
r.pay_ratio,br.`revenue`,br.`late_pay_ratio`,br.`late_pay_time`,br.`period`,br.`rent_contract_id`, r.pay_ratio,br.`revenue`,br.`late_pay_ratio`,br.`late_pay_time`,br.`period`,br.`rent_contract_id`,
d.receive_pay deposit,d.`status`,br.late_pay_price
deposit_status,br.shop_info,br.pay_way,br.late_pay_status,br.`comments`,br.starttime,br.endtime,
d.receive_pay deposit,d.`status`,br.late_pay_price,br.shop_info,br.pay_way,br.late_pay_status,br.`comments`,br.starttime,br.endtime,
r.late_pay_day,r.late_pay_ratio r.late_pay_day,r.late_pay_ratio
from wx_bill_rent br from wx_bill_rent br
left join wx_shop s on br.shop_id=s.id left join wx_shop s on br.shop_id=s.id


Загрузка…
Отмена
Сохранить