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

Merge tag 'refs/tags/jenkins-back-end-2432' into release

develop
release_toaliyun_real
gongbiao 6 лет назад
Родитель
Сommit
89b07771a6
1 измененных файлов: 59 добавлений и 103 удалений
  1. +59
    -103
      mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java

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

@@ -1038,22 +1038,11 @@ public class WxBillAllServiceImpl implements WxBillAllService {
if (daily != null) { if (daily != null) {
if (!daily.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { if (!daily.getStatus().equals(EnumBillRentStatus.PAID.getCode())) {
long allPay = new BigDecimal(daily.getPay()).add(new BigDecimal(pay)).longValueExact(); long allPay = new BigDecimal(daily.getPay()).add(new BigDecimal(pay)).longValueExact();
daily.setExpiredDay(0L);
if (allPay >= receivePay) {
daily.setStatus(EnumBillRentStatus.PAID.getCode());
} else {
Date payDate = bill.getPayDate();
Date receiveDate = bill.getReceiveDate();
if (payDate.after(receiveDate)) {
int expiredDay = DateUtils.daysBetween(receiveDate, payDate);
daily.setExpiredDay((long) expiredDay);
daily.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
} else {
daily.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
}
WxBillRent expiredDayAndStatus = getExpiredDayAndStatus(bill.getReceiveDate(), bill.getPayDate(), receivePay, allPay, false);
daily.setExpiredDay(expiredDayAndStatus.getExpiredDay());
daily.setStatus(expiredDayAndStatus.getStatus());
daily.setReceivePay(receivePay); daily.setReceivePay(receivePay);
daily.setPay(daily.getPay() + pay);
daily.setPay(allPay);
daily.setOwe(0L); daily.setOwe(0L);
long owe = daily.getReceivePay() - daily.getPay(); long owe = daily.getReceivePay() - daily.getPay();
if (owe > 0) { if (owe > 0) {
@@ -1086,24 +1075,13 @@ public class WxBillAllServiceImpl implements WxBillAllService {
Date date = new Date(); Date date = new Date();
daily.setCreatetime(date); daily.setCreatetime(date);
daily.setUpdatetime(date); daily.setUpdatetime(date);
daily.setExpiredDay(0L);
daily.setOwe(receivePay - pay); daily.setOwe(receivePay - pay);
daily.setIsDel(EnumDelStatus.NOT_DEL.getCode()); daily.setIsDel(EnumDelStatus.NOT_DEL.getCode());
daily.setStarttime(bill.getStarttime()); daily.setStarttime(bill.getStarttime());
daily.setEndtime(bill.getEndtime()); daily.setEndtime(bill.getEndtime());
if (receivePay <= pay) {
daily.setStatus(EnumBillRentStatus.PAID.getCode());
} else {
Date payDate = daily.getPayDate();
Date receiveDate = daily.getReceiveDate();
int expiredDay = DateUtils.daysBetween(receiveDate, payDate);
if (expiredDay > 0) {
daily.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
daily.setExpiredDay((long) expiredDay);
} else {
daily.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
}
WxBillRent expiredDayAndStatus = getExpiredDayAndStatus(bill.getReceiveDate(), bill.getPayDate(), receivePay, pay, false);
daily.setExpiredDay(expiredDayAndStatus.getExpiredDay());
daily.setStatus(expiredDayAndStatus.getStatus());
wxBillDailyMapper.insertSelective(daily); wxBillDailyMapper.insertSelective(daily);
addActionImport(daily.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); addActionImport(daily.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr());
} }
@@ -1119,24 +1097,13 @@ public class WxBillAllServiceImpl implements WxBillAllService {
if (other != null) { if (other != null) {
if (!other.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { if (!other.getStatus().equals(EnumBillRentStatus.PAID.getCode())) {
long allPay = new BigDecimal(other.getPay()).add(new BigDecimal(pay)).longValueExact(); long allPay = new BigDecimal(other.getPay()).add(new BigDecimal(pay)).longValueExact();
other.setExpiredDay(0L);
if (allPay >= receivePay) {
other.setStatus(EnumBillRentStatus.PAID.getCode());
} else {
Date payDate = bill.getPayDate();
Date receiveDate = bill.getReceiveDate();
if (payDate.after(receiveDate)) {
int expiredDay = DateUtils.daysBetween(receiveDate, payDate);
other.setExpiredDay((long) expiredDay);
other.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
} else {
other.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
}
WxBillRent expiredDayAndStatus = getExpiredDayAndStatus(bill.getReceiveDate(), bill.getPayDate(), receivePay, allPay, false);
other.setExpiredDay(expiredDayAndStatus.getExpiredDay());
other.setStatus(expiredDayAndStatus.getStatus());
other.setReceivePay(receivePay); other.setReceivePay(receivePay);
other.setName(bill.getBillAttr()); other.setName(bill.getBillAttr());
other.setComments(bill.getBillAttr()); other.setComments(bill.getBillAttr());
other.setPay(other.getPay() + pay);
other.setPay(allPay);
other.setOwe(0L); other.setOwe(0L);
long owe = other.getReceivePay() - other.getPay(); long owe = other.getReceivePay() - other.getPay();
if (owe > 0) { if (owe > 0) {
@@ -1170,24 +1137,13 @@ public class WxBillAllServiceImpl implements WxBillAllService {
Date date = new Date(); Date date = new Date();
other.setCreatetime(date); other.setCreatetime(date);
other.setUpdatetime(date); other.setUpdatetime(date);
other.setExpiredDay(0L);
other.setOwe(receivePay - pay); other.setOwe(receivePay - pay);
other.setIsDel(EnumDelStatus.NOT_DEL.getCode()); other.setIsDel(EnumDelStatus.NOT_DEL.getCode());
other.setStarttime(bill.getStarttime()); other.setStarttime(bill.getStarttime());
other.setEndtime(bill.getEndtime()); other.setEndtime(bill.getEndtime());
if (receivePay <= pay) {
other.setStatus(EnumBillRentStatus.PAID.getCode());
} else {
Date payDate = other.getPayDate();
Date receiveDate = other.getReceiveDate();
int expiredDay = DateUtils.daysBetween(receiveDate, payDate);
if (expiredDay > 0) {
other.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
other.setExpiredDay((long) expiredDay);
} else {
other.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
}
WxBillRent expiredDayAndStatus = getExpiredDayAndStatus(bill.getReceiveDate(), bill.getPayDate(), receivePay, pay, false);
other.setExpiredDay(expiredDayAndStatus.getExpiredDay());
other.setStatus(expiredDayAndStatus.getStatus());
wxBillOtherMapper.insertSelective(other); wxBillOtherMapper.insertSelective(other);
addActionImport(other.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); addActionImport(other.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr());
} }
@@ -1207,18 +1163,10 @@ public class WxBillAllServiceImpl implements WxBillAllService {
if (allPay >= receivePay) { if (allPay >= receivePay) {
otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode());
} else { } else {
Date payDate = bill.getPayDate();
Date receiveDate = bill.getReceiveDate();
if (payDate.after(receiveDate)) {
int expiredDay = DateUtils.daysBetween(receiveDate, payDate);
otherDeposit.setExpiredDay((long) expiredDay);
otherDeposit.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
} else {
otherDeposit.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
otherDeposit.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
} }
otherDeposit.setReceivePay(receivePay); otherDeposit.setReceivePay(receivePay);
otherDeposit.setPay(otherDeposit.getPay() + pay);
otherDeposit.setPay(allPay);
otherDeposit.setOwe(0L); otherDeposit.setOwe(0L);
long owe = otherDeposit.getReceivePay() - otherDeposit.getPay(); long owe = otherDeposit.getReceivePay() - otherDeposit.getPay();
if (owe > 0) { if (owe > 0) {
@@ -1261,13 +1209,7 @@ public class WxBillAllServiceImpl implements WxBillAllService {
if (receivePay <= pay) { if (receivePay <= pay) {
otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode());
} else { } else {
Date payDate = otherDeposit.getPayDate();
Date receiveDate = otherDeposit.getReceiveDate();
int expiredDay = DateUtils.daysBetween(receiveDate, payDate);
otherDeposit.setStatus(EnumBillRentStatus.WAIT_PAY.getCode()); otherDeposit.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
if (expiredDay > 0) {
otherDeposit.setExpiredDay((long) expiredDay);
}
} }
wxBillOtherDepositMapper.insertSelective(otherDeposit); wxBillOtherDepositMapper.insertSelective(otherDeposit);
addActionImport(otherDeposit.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); addActionImport(otherDeposit.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr());
@@ -1281,6 +1223,40 @@ public class WxBillAllServiceImpl implements WxBillAllService {
stringRedisTemplate.expire(importKey, 10, TimeUnit.SECONDS); stringRedisTemplate.expire(importKey, 10, TimeUnit.SECONDS);
} }


public WxBillRent getExpiredDayAndStatus(Date startDate, Date endDate, Long owe, Long pay, boolean flag) {
WxBillRent rent = new WxBillRent();
rent.setExpiredDay(0L);
if (owe <= pay) {
rent.setStatus(EnumBillRentStatus.PAID.getCode());
int expiredDay = DateUtils.daysBetween(startDate, endDate);
int timePeriod = 0;
if (expiredDay > timePeriod) {
rent.setExpiredDay((long) expiredDay);
}
} else {
Date now = new Date();
int day = DateUtils.daysBetween(startDate, now);
int timePeriod = 0;
if (day < timePeriod) {
rent.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
long expiredDay = Long.valueOf(Math.abs(day));
rent.setExpiredDay(expiredDay);
} else {
if (flag) {
timePeriod = 30;
if (day > timePeriod) {
rent.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode());
} else {
rent.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
} else {
rent.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
}
}
return rent;
}

@Override @Override
public void importBill(String tenantId, String importKey, WxBillExcelTemplate bill, MallUserInfo user) { public void importBill(String tenantId, String importKey, WxBillExcelTemplate bill, MallUserInfo user) {
//租金 //租金
@@ -1300,20 +1276,9 @@ public class WxBillAllServiceImpl implements WxBillAllService {
WxBillRent rent = wxBillRentMapper.selectBillOne(rentQuery); WxBillRent rent = wxBillRentMapper.selectBillOne(rentQuery);
if (rent != null && !rent.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { if (rent != null && !rent.getStatus().equals(EnumBillRentStatus.PAID.getCode())) {
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact();
rent.setExpiredDay(0L);
if (rent.getOwe() <= pay) {
rent.setStatus(EnumBillRentStatus.PAID.getCode());
} else {
Date payDate = bill.getPayDate();
Date receiveDate = bill.getReceiveDate();
if (payDate.after(receiveDate)) {
int expiredDay = DateUtils.daysBetween(receiveDate, payDate);
rent.setExpiredDay((long) expiredDay);
rent.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
} else {
rent.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
}
WxBillRent expiredDayAndStatus = getExpiredDayAndStatus(bill.getReceiveDate(), bill.getPayDate(), rent.getOwe(), pay, true);
rent.setExpiredDay(expiredDayAndStatus.getExpiredDay());
rent.setStatus(expiredDayAndStatus.getStatus());
rent.setPay(rent.getPay() + pay); rent.setPay(rent.getPay() + pay);
rent.setOwe(rent.getOwe() - pay); rent.setOwe(rent.getOwe() - pay);
rent.setPayDate(bill.getPayDate()); rent.setPayDate(bill.getPayDate());
@@ -1336,20 +1301,9 @@ public class WxBillAllServiceImpl implements WxBillAllService {
WxBillProperty property = wxBillPropertyMapper.selectBillOne(propertyQuery); WxBillProperty property = wxBillPropertyMapper.selectBillOne(propertyQuery);
if (property != null && !property.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { if (property != null && !property.getStatus().equals(EnumBillRentStatus.PAID.getCode())) {
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact();
property.setExpiredDay(0L);
if (property.getOwe() <= pay) {
property.setStatus(EnumBillRentStatus.PAID.getCode());
} else {
Date payDate = bill.getPayDate();
Date receiveDate = bill.getReceiveDate();
if (payDate.after(receiveDate)) {
int expiredDay = DateUtils.daysBetween(receiveDate, payDate);
property.setExpiredDay((long) expiredDay);
property.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
} else {
property.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
}
}
WxBillRent expiredDayAndStatus = getExpiredDayAndStatus(bill.getReceiveDate(), bill.getPayDate(), property.getOwe(), pay, true);
property.setExpiredDay(expiredDayAndStatus.getExpiredDay());
property.setStatus(expiredDayAndStatus.getStatus());
property.setPay(property.getPay() + pay); property.setPay(property.getPay() + pay);
property.setOwe(property.getOwe() - pay); property.setOwe(property.getOwe() - pay);
property.setPayDate(bill.getPayDate()); property.setPayDate(bill.getPayDate());
@@ -1426,7 +1380,9 @@ public class WxBillAllServiceImpl implements WxBillAllService {
for (Map<String, Object> bill:mapList) { for (Map<String, Object> bill:mapList) {
Long merchantId = (Long)bill.get("merchantId"); Long merchantId = (Long)bill.get("merchantId");
List<Map<String, Object>> currList = result.get(merchantId); List<Map<String, Object>> currList = result.get(merchantId);
if(currList == null) currList = new ArrayList<>();
if (currList == null) {
currList = new ArrayList<>();
}
currList.add(bill); currList.add(bill);
result.put(merchantId,currList); result.put(merchantId,currList);
} }


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