|
|
|
@@ -907,7 +907,9 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public void exportTemplate(WxBillExcelTemplate WxBillExcelTemplate, HttpServletRequest request, HttpServletResponse response) { |
|
|
|
List<WxBillExcelTemplateOther> datalist = new ArrayList<>(); |
|
|
|
List<WxBillExcelTemplate> datalist = new ArrayList<>(); |
|
|
|
List<WxBillExcelTemplateOther> otherDatalist = new ArrayList<>(); |
|
|
|
|
|
|
|
Integer billType = WxBillExcelTemplate.getBillType(); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.DAILY.getCode())) { |
|
|
|
WxBillExcelTemplateOther one = new WxBillExcelTemplateOther(); |
|
|
|
@@ -917,11 +919,12 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
one.setBillAttr("水费"); |
|
|
|
one.setStarttime(date); |
|
|
|
one.setEndtime(date); |
|
|
|
one.setReceivePayStr("1000"); |
|
|
|
one.setPayStr("1000"); |
|
|
|
one.setPayDate(date); |
|
|
|
one.setReceiveDate(date); |
|
|
|
one.setPayWay("微信"); |
|
|
|
datalist.add(one); |
|
|
|
otherDatalist.add(one); |
|
|
|
|
|
|
|
WxBillExcelTemplateOther two = new WxBillExcelTemplateOther(); |
|
|
|
two.setMerchantName("商户2"); |
|
|
|
@@ -929,11 +932,12 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
two.setBillAttr("电费"); |
|
|
|
two.setStarttime(date); |
|
|
|
two.setEndtime(date); |
|
|
|
two.setReceivePayStr("2000.50"); |
|
|
|
two.setPayStr("2000.50"); |
|
|
|
two.setPayDate(date); |
|
|
|
two.setReceiveDate(date); |
|
|
|
two.setPayWay("支付宝"); |
|
|
|
datalist.add(two); |
|
|
|
otherDatalist.add(two); |
|
|
|
|
|
|
|
WxBillExcelTemplateOther three = new WxBillExcelTemplateOther(); |
|
|
|
three.setMerchantName("商户3"); |
|
|
|
@@ -941,107 +945,80 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
three.setBillAttr("空调费"); |
|
|
|
three.setStarttime(date); |
|
|
|
three.setEndtime(date); |
|
|
|
three.setReceivePayStr("3333"); |
|
|
|
three.setPayStr("3333"); |
|
|
|
three.setPayDate(date); |
|
|
|
three.setReceiveDate(date); |
|
|
|
three.setPayWay("其他"); |
|
|
|
datalist.add(three); |
|
|
|
otherDatalist.add(three); |
|
|
|
excelService.exportExcel(otherDatalist, null, "账单模板", WxBillExcelTemplateOther.class, "账单模板.xlsx", response, true); |
|
|
|
} else if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_RENT.getCode())) { |
|
|
|
WxBillExcelTemplate one = new WxBillExcelTemplate(); |
|
|
|
Date date = new Date(); |
|
|
|
one.setMerchantName("商户"); |
|
|
|
one.setBillType(billType); |
|
|
|
one.setBillAttr("租金"); |
|
|
|
one.setStarttime(date); |
|
|
|
one.setEndtime(date); |
|
|
|
one.setPayStr("2000.50"); |
|
|
|
one.setReceiveDate(date); |
|
|
|
one.setPayDate(date); |
|
|
|
one.setPayWay("微信"); |
|
|
|
datalist.add(one); |
|
|
|
excelService.exportExcel(datalist, null, "账单模板", WxBillExcelTemplate.class, "账单模板.xlsx", response, true); |
|
|
|
} else if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_PROPERTY.getCode())) { |
|
|
|
WxBillExcelTemplate one = new WxBillExcelTemplate(); |
|
|
|
Date date = new Date(); |
|
|
|
one.setMerchantName("商户"); |
|
|
|
one.setBillType(billType); |
|
|
|
one.setBillAttr("物业费"); |
|
|
|
one.setStarttime(date); |
|
|
|
one.setEndtime(date); |
|
|
|
one.setPayStr("2000.50"); |
|
|
|
one.setReceiveDate(date); |
|
|
|
one.setPayDate(date); |
|
|
|
one.setPayWay("微信"); |
|
|
|
datalist.add(one); |
|
|
|
excelService.exportExcel(datalist, null, "账单模板", WxBillExcelTemplate.class, "账单模板.xlsx", response, true); |
|
|
|
} else if (billType.equals(EnumBillExcelTemplate.OTHER.getCode())) { |
|
|
|
WxBillExcelTemplateOther one = new WxBillExcelTemplateOther(); |
|
|
|
Date date = new Date(); |
|
|
|
one.setMerchantName("商户"); |
|
|
|
one.setBillType(billType); |
|
|
|
one.setBillAttr("其他费用"); |
|
|
|
one.setStarttime(date); |
|
|
|
one.setEndtime(date); |
|
|
|
one.setReceivePayStr("2000.50"); |
|
|
|
one.setPayStr("2000.50"); |
|
|
|
one.setReceiveDate(date); |
|
|
|
one.setPayDate(date); |
|
|
|
one.setPayWay("微信"); |
|
|
|
otherDatalist.add(one); |
|
|
|
excelService.exportExcel(otherDatalist, null, "账单模板", WxBillExcelTemplateOther.class, "账单模板.xlsx", response, true); |
|
|
|
} else { |
|
|
|
|
|
|
|
WxBillExcelTemplateOther one = new WxBillExcelTemplateOther(); |
|
|
|
Date date = new Date(); |
|
|
|
one.setMerchantName("商户"); |
|
|
|
one.setBillType(billType); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_RENT.getCode())) { |
|
|
|
one.setBillAttr("租金"); |
|
|
|
} else if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_PROPERTY.getCode())) { |
|
|
|
one.setBillAttr("物业费"); |
|
|
|
} else if (billType.equals(EnumBillExcelTemplate.OTHER.getCode())) { |
|
|
|
one.setBillAttr("其他费用"); |
|
|
|
} else { |
|
|
|
one.setBillAttr("其他押金"); |
|
|
|
} |
|
|
|
one.setBillAttr("其他押金"); |
|
|
|
one.setStarttime(date); |
|
|
|
one.setEndtime(date); |
|
|
|
one.setReceivePayStr("2000.50"); |
|
|
|
one.setPayStr("2000.50"); |
|
|
|
one.setReceiveDate(date); |
|
|
|
one.setPayDate(date); |
|
|
|
one.setPayWay("微信"); |
|
|
|
datalist.add(one); |
|
|
|
otherDatalist.add(one); |
|
|
|
excelService.exportExcel(otherDatalist, null, "账单模板", WxBillExcelTemplateOther.class, "账单模板.xlsx", response, true); |
|
|
|
} |
|
|
|
excelService.exportExcel(datalist, null, "账单模板", WxBillExcelTemplateOther.class, "账单模板.xlsx", response, true); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void importBill(String tenantId, String importKey, WxBillExcelTemplateOther bill, MallUserInfo user) { |
|
|
|
//租金 |
|
|
|
public void importBillOther(String tenantId, String importKey, WxBillExcelTemplateOther bill, MallUserInfo user) { |
|
|
|
Integer billType = bill.getBillType(); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_RENT.getCode())) { |
|
|
|
WxBillRent rentQuery = new WxBillRent(); |
|
|
|
rentQuery.setTenantId(tenantId); |
|
|
|
rentQuery.setMerchantId(bill.getMerchantId()); |
|
|
|
rentQuery.setStarttime(bill.getStarttime()); |
|
|
|
rentQuery.setEndtime(bill.getEndtime()); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode())) { |
|
|
|
rentQuery.setRentShopType(EnumRentShopType.SHOP.getCode()); |
|
|
|
} else { |
|
|
|
rentQuery.setRentShopType(EnumRentShopType.POINT.getCode()); |
|
|
|
} |
|
|
|
rentQuery.setIsPreview(EnumIsPreview.NO.getCode()); |
|
|
|
WxBillRent rent = wxBillRentMapper.selectBillOne(rentQuery); |
|
|
|
if (rent != null && !rent.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { |
|
|
|
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
if (rent.getOwe() <= pay) { |
|
|
|
rent.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
Date payDate = bill.getPayDate(); |
|
|
|
Date receiveDate = bill.getReceiveDate(); |
|
|
|
rent.setExpiredDay(0L); |
|
|
|
if (payDate.after(receiveDate)) { |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
rent.setExpiredDay((long) expiredDay); |
|
|
|
} |
|
|
|
} |
|
|
|
rent.setPay(rent.getPay() + pay); |
|
|
|
rent.setOwe(rent.getOwe() - pay); |
|
|
|
rent.setPayDate(bill.getPayDate()); |
|
|
|
rent.setReceiveDate(bill.getReceiveDate()); |
|
|
|
wxBillRentMapper.updateByPrimaryKey(rent); |
|
|
|
addActionImport(rent.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); |
|
|
|
} |
|
|
|
} else if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_PROPERTY.getCode())) { |
|
|
|
WxBillProperty propertyQuery = new WxBillProperty(); |
|
|
|
propertyQuery.setTenantId(tenantId); |
|
|
|
propertyQuery.setMerchantId(bill.getMerchantId()); |
|
|
|
propertyQuery.setStarttime(bill.getStarttime()); |
|
|
|
propertyQuery.setEndtime(bill.getEndtime()); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode())) { |
|
|
|
propertyQuery.setRentShopType(EnumRentShopType.SHOP.getCode()); |
|
|
|
} else { |
|
|
|
propertyQuery.setRentShopType(EnumRentShopType.POINT.getCode()); |
|
|
|
} |
|
|
|
propertyQuery.setIsPreview(EnumIsPreview.NO.getCode()); |
|
|
|
WxBillProperty property = wxBillPropertyMapper.selectBillOne(propertyQuery); |
|
|
|
if (property != null && !property.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { |
|
|
|
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
if (property.getOwe() <= pay) { |
|
|
|
property.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
Date payDate = bill.getPayDate(); |
|
|
|
Date receiveDate = bill.getReceiveDate(); |
|
|
|
property.setExpiredDay(0L); |
|
|
|
if (payDate.after(receiveDate)) { |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
property.setExpiredDay((long) expiredDay); |
|
|
|
} |
|
|
|
} |
|
|
|
property.setPay(property.getPay() + pay); |
|
|
|
property.setOwe(property.getOwe() - pay); |
|
|
|
property.setPayDate(bill.getPayDate()); |
|
|
|
property.setReceiveDate(bill.getReceiveDate()); |
|
|
|
wxBillPropertyMapper.updateByPrimaryKey(property); |
|
|
|
addActionImport(property.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); |
|
|
|
} |
|
|
|
} else if (billType.equals(EnumBillExcelTemplate.DAILY.getCode())) { |
|
|
|
long receivePay = new BigDecimal(bill.getReceivePayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.DAILY.getCode())) { |
|
|
|
WxBillDaily dailyQuery = new WxBillDaily(); |
|
|
|
String billAttrStr = StringUtils.trim(bill.getBillAttr()); |
|
|
|
if (billAttrStr.equals(EnumBillExcelTemplateDaily.WATER.getMessage())) { |
|
|
|
@@ -1058,10 +1035,10 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
dailyQuery.setReceiveDate(bill.getReceiveDate()); |
|
|
|
dailyQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); |
|
|
|
WxBillDaily daily = wxBillDailyMapper.selectOne(dailyQuery); |
|
|
|
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
if (daily != null) { |
|
|
|
if (!daily.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { |
|
|
|
if (daily.getOwe() <= pay) { |
|
|
|
long allPay = new BigDecimal(daily.getPay()).add(new BigDecimal(pay)).longValueExact(); |
|
|
|
if (allPay >= receivePay) { |
|
|
|
daily.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
Date payDate = bill.getPayDate(); |
|
|
|
Date receiveDate = bill.getReceiveDate(); |
|
|
|
@@ -1088,8 +1065,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
daily = new WxBillDaily(); |
|
|
|
final IdWorker idWorker = IdWorker.get(); |
|
|
|
daily.setId(idWorker.nextId()); |
|
|
|
daily.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
daily.setReceivePay(pay); |
|
|
|
daily.setReceivePay(receivePay); |
|
|
|
daily.setReceiveDate(bill.getReceiveDate()); |
|
|
|
daily.setPay(pay); |
|
|
|
daily.setType(dailyQuery.getType()); |
|
|
|
@@ -1106,11 +1082,18 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
daily.setIsDel(EnumDelStatus.NOT_DEL.getCode()); |
|
|
|
daily.setStarttime(bill.getStarttime()); |
|
|
|
daily.setEndtime(bill.getEndtime()); |
|
|
|
Date payDate = daily.getPayDate(); |
|
|
|
Date receiveDate = daily.getReceiveDate(); |
|
|
|
if (payDate.after(receiveDate)) { |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
daily.setExpiredDay((long) expiredDay); |
|
|
|
if (receivePay <= pay) { |
|
|
|
daily.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
} else { |
|
|
|
Date payDate = daily.getPayDate(); |
|
|
|
Date receiveDate = daily.getReceiveDate(); |
|
|
|
if (payDate.before(receiveDate)) { |
|
|
|
daily.setStatus(EnumBillRentStatus.WAIT_PAY.getCode()); |
|
|
|
} else { |
|
|
|
daily.setStatus(EnumBillRentStatus.NOT_PAID.getCode()); |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
daily.setExpiredDay((long) expiredDay); |
|
|
|
} |
|
|
|
} |
|
|
|
wxBillDailyMapper.insertSelective(daily); |
|
|
|
addActionImport(daily.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); |
|
|
|
@@ -1124,10 +1107,10 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
otherQuery.setName(bill.getBillAttr()); |
|
|
|
otherQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); |
|
|
|
WxBillOther other = wxBillOtherMapper.selectOne(otherQuery); |
|
|
|
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
if (other != null) { |
|
|
|
if (!other.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { |
|
|
|
if (other.getOwe() <= pay) { |
|
|
|
long allPay = new BigDecimal(other.getPay()).add(new BigDecimal(pay)).longValueExact(); |
|
|
|
if (allPay >= receivePay) { |
|
|
|
other.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
Date payDate = bill.getPayDate(); |
|
|
|
Date receiveDate = bill.getReceiveDate(); |
|
|
|
@@ -1158,8 +1141,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
other.setId(idWorker.nextId()); |
|
|
|
other.setName(bill.getBillAttr()); |
|
|
|
other.setComments(bill.getBillAttr()); |
|
|
|
other.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
other.setReceivePay(pay); |
|
|
|
other.setReceivePay(receivePay); |
|
|
|
other.setReceiveDate(bill.getReceiveDate()); |
|
|
|
other.setPay(pay); |
|
|
|
other.setTenantId(tenantId); |
|
|
|
@@ -1175,11 +1157,18 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
other.setIsDel(EnumDelStatus.NOT_DEL.getCode()); |
|
|
|
other.setStarttime(bill.getStarttime()); |
|
|
|
other.setEndtime(bill.getEndtime()); |
|
|
|
Date payDate = other.getPayDate(); |
|
|
|
Date receiveDate = other.getReceiveDate(); |
|
|
|
if (payDate.after(receiveDate)) { |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
other.setExpiredDay((long) expiredDay); |
|
|
|
if (receivePay <= pay) { |
|
|
|
other.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
} else { |
|
|
|
Date payDate = other.getPayDate(); |
|
|
|
Date receiveDate = other.getReceiveDate(); |
|
|
|
if (payDate.before(receiveDate)) { |
|
|
|
other.setStatus(EnumBillRentStatus.WAIT_PAY.getCode()); |
|
|
|
} else { |
|
|
|
other.setStatus(EnumBillRentStatus.NOT_PAID.getCode()); |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
other.setExpiredDay((long) expiredDay); |
|
|
|
} |
|
|
|
} |
|
|
|
wxBillOtherMapper.insertSelective(other); |
|
|
|
addActionImport(other.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); |
|
|
|
@@ -1193,10 +1182,10 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
otherDepositQuery.setComments(bill.getBillAttr()); |
|
|
|
otherDepositQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); |
|
|
|
WxBillOtherDeposit otherDeposit = wxBillOtherDepositMapper.selectOne(otherDepositQuery); |
|
|
|
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
if (otherDeposit != null) { |
|
|
|
if (!otherDeposit.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { |
|
|
|
if (otherDeposit.getOwe() <= pay) { |
|
|
|
long allPay = new BigDecimal(otherDeposit.getPay()).add(new BigDecimal(pay)).longValueExact(); |
|
|
|
if (allPay >= receivePay) { |
|
|
|
otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
Date payDate = bill.getPayDate(); |
|
|
|
Date receiveDate = bill.getReceiveDate(); |
|
|
|
@@ -1226,8 +1215,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
otherDeposit.setId(idWorker.nextId()); |
|
|
|
otherDeposit.setName(bill.getBillAttr()); |
|
|
|
otherDeposit.setComments(bill.getBillAttr()); |
|
|
|
otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
otherDeposit.setReceivePay(pay); |
|
|
|
otherDeposit.setReceivePay(receivePay); |
|
|
|
otherDeposit.setReceiveDate(bill.getReceiveDate()); |
|
|
|
otherDeposit.setPay(pay); |
|
|
|
otherDeposit.setTenantId(tenantId); |
|
|
|
@@ -1243,11 +1231,18 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
otherDeposit.setIsDel(EnumDelStatus.NOT_DEL.getCode()); |
|
|
|
otherDeposit.setStarttime(bill.getStarttime()); |
|
|
|
otherDeposit.setEndtime(bill.getEndtime()); |
|
|
|
Date payDate = otherDeposit.getPayDate(); |
|
|
|
Date receiveDate = otherDeposit.getReceiveDate(); |
|
|
|
if (payDate.after(receiveDate)) { |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
otherDeposit.setExpiredDay((long) expiredDay); |
|
|
|
if (receivePay <= pay) { |
|
|
|
otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
} else { |
|
|
|
Date payDate = otherDeposit.getPayDate(); |
|
|
|
Date receiveDate = otherDeposit.getReceiveDate(); |
|
|
|
if (payDate.before(receiveDate)) { |
|
|
|
otherDeposit.setStatus(EnumBillRentStatus.WAIT_PAY.getCode()); |
|
|
|
} else { |
|
|
|
otherDeposit.setStatus(EnumBillRentStatus.NOT_PAID.getCode()); |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
otherDeposit.setExpiredDay((long) expiredDay); |
|
|
|
} |
|
|
|
} |
|
|
|
wxBillOtherDepositMapper.insertSelective(otherDeposit); |
|
|
|
addActionImport(otherDeposit.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); |
|
|
|
@@ -1261,6 +1256,82 @@ public class WxBillAllServiceImpl implements WxBillAllService { |
|
|
|
stringRedisTemplate.expire(importKey, 10, TimeUnit.SECONDS); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void importBill(String tenantId, String importKey, WxBillExcelTemplate bill, MallUserInfo user) { |
|
|
|
//租金 |
|
|
|
Integer billType = bill.getBillType(); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_RENT.getCode())) { |
|
|
|
WxBillRent rentQuery = new WxBillRent(); |
|
|
|
rentQuery.setTenantId(tenantId); |
|
|
|
rentQuery.setMerchantId(bill.getMerchantId()); |
|
|
|
rentQuery.setStarttime(bill.getStarttime()); |
|
|
|
rentQuery.setEndtime(bill.getEndtime()); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode())) { |
|
|
|
rentQuery.setRentShopType(EnumRentShopType.SHOP.getCode()); |
|
|
|
} else { |
|
|
|
rentQuery.setRentShopType(EnumRentShopType.POINT.getCode()); |
|
|
|
} |
|
|
|
rentQuery.setIsPreview(EnumIsPreview.NO.getCode()); |
|
|
|
WxBillRent rent = wxBillRentMapper.selectBillOne(rentQuery); |
|
|
|
if (rent != null && !rent.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { |
|
|
|
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
if (rent.getOwe() <= pay) { |
|
|
|
rent.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
Date payDate = bill.getPayDate(); |
|
|
|
Date receiveDate = bill.getReceiveDate(); |
|
|
|
rent.setExpiredDay(0L); |
|
|
|
if (payDate.after(receiveDate)) { |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
rent.setExpiredDay((long) expiredDay); |
|
|
|
} |
|
|
|
} |
|
|
|
rent.setPay(rent.getPay() + pay); |
|
|
|
rent.setOwe(rent.getOwe() - pay); |
|
|
|
rent.setPayDate(bill.getPayDate()); |
|
|
|
rent.setReceiveDate(bill.getReceiveDate()); |
|
|
|
wxBillRentMapper.updateByPrimaryKey(rent); |
|
|
|
addActionImport(rent.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); |
|
|
|
} |
|
|
|
} else if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_PROPERTY.getCode())) { |
|
|
|
WxBillProperty propertyQuery = new WxBillProperty(); |
|
|
|
propertyQuery.setTenantId(tenantId); |
|
|
|
propertyQuery.setMerchantId(bill.getMerchantId()); |
|
|
|
propertyQuery.setStarttime(bill.getStarttime()); |
|
|
|
propertyQuery.setEndtime(bill.getEndtime()); |
|
|
|
if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode())) { |
|
|
|
propertyQuery.setRentShopType(EnumRentShopType.SHOP.getCode()); |
|
|
|
} else { |
|
|
|
propertyQuery.setRentShopType(EnumRentShopType.POINT.getCode()); |
|
|
|
} |
|
|
|
propertyQuery.setIsPreview(EnumIsPreview.NO.getCode()); |
|
|
|
WxBillProperty property = wxBillPropertyMapper.selectBillOne(propertyQuery); |
|
|
|
if (property != null && !property.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { |
|
|
|
long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); |
|
|
|
if (property.getOwe() <= pay) { |
|
|
|
property.setStatus(EnumBillRentStatus.PAID.getCode()); |
|
|
|
Date payDate = bill.getPayDate(); |
|
|
|
Date receiveDate = bill.getReceiveDate(); |
|
|
|
property.setExpiredDay(0L); |
|
|
|
if (payDate.after(receiveDate)) { |
|
|
|
int expiredDay = DateUtils.daysBetween(receiveDate, payDate); |
|
|
|
property.setExpiredDay((long) expiredDay); |
|
|
|
} |
|
|
|
} |
|
|
|
property.setPay(property.getPay() + pay); |
|
|
|
property.setOwe(property.getOwe() - pay); |
|
|
|
property.setPayDate(bill.getPayDate()); |
|
|
|
property.setReceiveDate(bill.getReceiveDate()); |
|
|
|
wxBillPropertyMapper.updateByPrimaryKey(property); |
|
|
|
addActionImport(property.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
logger.error("账单导入失败"); |
|
|
|
} |
|
|
|
//记数 |
|
|
|
stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); |
|
|
|
stringRedisTemplate.expire(importKey, 10, TimeUnit.SECONDS); |
|
|
|
} |
|
|
|
|
|
|
|
public void addActionImport(Long billId, String payWay, Date payDate, MallUserInfo user, String pay) { |
|
|
|
WxBillAction wxBillAction = new WxBillAction(); |
|
|
|
wxBillAction.setBillId(billId); |
|
|
|
|