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

[租赁合同][修改][账单生成逻辑修改]

release_toaliyun_real
gongbiao 7 лет назад
Родитель
Сommit
a618a91475
4 измененных файлов: 59 добавлений и 26 удалений
  1. +3
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java
  2. +21
    -12
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java
  3. +18
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  4. +17
    -7
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 3
- 1
mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java Просмотреть файл

@@ -1,8 +1,10 @@
package com.iformall.enums;


/**
* Created by Stormeye on 2018/08/09.
* @author gongbiao
*/

public enum EnumRentContractStatus {

WAIT_SIGN(1, "待签约"),


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

@@ -225,7 +225,7 @@ public class WxMerchantServiceImpl implements WxMerchantService {
wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode());
wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract);
//创建账单
buildRent(wxRentContract);
buildRent(wxMerchant);
//创建押金
buildDeposit(wxMerchant);
}
@@ -333,10 +333,10 @@ public class WxMerchantServiceImpl implements WxMerchantService {
wxAppinfo.setTenantId(wxMerchant.getTenantId());
wxAppinfo.setType(EnumAppType.B.getCode());
List<WxAppinfo> list = wxAppinfoMapper.findList(wxAppinfo);
if(list.size()==0){
if (list.size() == 0) {
return new ResultData(ErrorCode.APP_ID_NOT_FOUND);
}
wxAppinfo=list.get(0);
wxAppinfo = list.get(0);
List<WxMerchantBUser> bUsers = wxMerchant.getbUsers();

//删除之前的关联用户
@@ -457,7 +457,7 @@ public class WxMerchantServiceImpl implements WxMerchantService {
wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode());
wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract);
//创建账单
buildRent(wxRentContract);
buildRent(wxMerchant);
//创建押金
buildDeposit(wxMerchant);
}
@@ -576,7 +576,6 @@ public class WxMerchantServiceImpl implements WxMerchantService {
List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract);
if (list.size() > 0) {
wxRentContract = list.get(0);
Integer receivePeriod = wxRentContract.getReceivePeriod();
final IdWorker idWorker = IdWorker.get();
WxBillDeposit wxBillDeposit = new WxBillDeposit();
wxBillDeposit.setId(idWorker.nextId());
@@ -622,17 +621,21 @@ public class WxMerchantServiceImpl implements WxMerchantService {
}

@Transactional(rollbackFor = {Exception.class})
public void buildRent(WxRentContract wxRentContract) {
public void buildRent(WxMerchant wxMerchant) {

//获取用户
MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession");

WxRentContract wxRentContract = new WxRentContract();
wxRentContract.setMerchantId(wxMerchant.getId());
//根据商户ID找出合同
List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract);
if (list.size() > 0) {
wxRentContract = list.get(0);
Integer receivePeriod = wxRentContract.getReceivePeriod();
int paycount = 12 / receivePeriod.intValue();
int receivePeriod = wxRentContract.getReceivePeriod().intValue();
Integer lease = wxRentContract.getLease();
int extralease = lease % receivePeriod;
int extracount = extralease > 0 ? 1 : 0;
int paycount = lease / receivePeriod + extracount;
final IdWorker idWorker = IdWorker.get();
for (int i = 0; i < paycount; i++) {
WxBillRent wxBillRent = new WxBillRent();
@@ -640,14 +643,20 @@ public class WxMerchantServiceImpl implements WxMerchantService {
wxBillRent.setRentContractId(wxRentContract.getId());
wxBillRent.setReceivePay(0);
wxBillRent.setPay(0);
int needpay = wxRentContract.getPrice();
int needpay = wxRentContract.getPrice() * receivePeriod;
if (extracount > 0) {
if (i == paycount - 1) {
needpay = wxRentContract.getPrice() * extralease;
}
}

wxBillRent.setNeedPay(needpay);
wxBillRent.setOwe(needpay);

Date date = new Date();
Calendar instance = Calendar.getInstance();
instance.setTime(wxRentContract.getRentalStartDate());
instance.add(Calendar.MONTH, receivePeriod.intValue() * i);
instance.add(Calendar.MONTH, receivePeriod * i);
instance.add(Calendar.DAY_OF_MONTH, -1);
Date time = instance.getTime();
wxBillRent.setReceiveDate(time);
@@ -659,7 +668,7 @@ public class WxMerchantServiceImpl implements WxMerchantService {
wxBillRent.setReceiveDate(time);
} else {//截止收租日在当前时间之后
Calendar now = Calendar.getInstance();
now.add(Calendar.MONTH, receivePeriod.intValue());
now.add(Calendar.MONTH, receivePeriod);
Date currenttime = now.getTime();
//当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴
if (currenttime.before(wxBillRent.getReceiveDate())) {


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

@@ -114,6 +114,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
}
return new ResultData(Result.SUCCESS, "保存物业合同信息成功", record);
} else {//更新物业合同信息

Calendar instance = Calendar.getInstance();
instance.setTime(record.getRentalStartDate());
instance.add(Calendar.MONTH, record.getLease());
@@ -122,12 +123,15 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
record.setPrice(record.getPrice() != null ? record.getPrice() * 100 : 0);
record.setDeposit(record.getDeposit() != null ? record.getDeposit() * 100 : 0);
record.setUpdatetime(new Date());
if(record.getPrice()==0 || record.getDeposit()==0){
record.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode());
}
try {
wxPropertyContractMapper.updateByPrimaryKeySelective(record);

//建立账单
if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode())
&& record.getReceivePeriod() != null) {
&& record.getReceivePeriod() != null && record.getDeposit()>0 && record.getPrice()>0) {
WxBillProperty wxBillProperty = new WxBillProperty();
wxBillProperty.setMerchantId(record.getMerchantId());
List<Map<String, Object>> billPropertyList = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty);
@@ -215,8 +219,11 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
List<WxPropertyContract> list = wxPropertyContractMapper.findList(wxPropertyContract);
if (list.size() > 0) {
wxPropertyContract = list.get(0);
Integer receivePeriod = wxPropertyContract.getReceivePeriod();
int paycount = 12 / receivePeriod.intValue();
int receivePeriod = wxPropertyContract.getReceivePeriod().intValue();
Integer lease = wxPropertyContract.getLease();
int extralease =lease%receivePeriod;
int extracount=extralease>0?1:0;
int paycount = lease / receivePeriod+extracount;
final IdWorker idWorker = IdWorker.get();
for (int i = 0; i < paycount; i++) {
WxBillProperty wxBillRent = new WxBillProperty();
@@ -224,14 +231,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
wxBillRent.setPropertyContractId(wxPropertyContract.getId());
wxBillRent.setReceivePay(0);
wxBillRent.setPay(0);
int needpay = wxPropertyContract.getPrice();
int needpay = wxPropertyContract.getPrice()*receivePeriod;
if(extracount>0){
if(i==paycount-1){
needpay = wxPropertyContract.getPrice()*extralease;
}
}
wxBillRent.setNeedPay(needpay);
wxBillRent.setOwe(needpay);

Date date = new Date();
Calendar instance = Calendar.getInstance();
instance.setTime(wxPropertyContract.getRentalStartDate());
instance.add(Calendar.MONTH, receivePeriod.intValue() * i);
instance.add(Calendar.MONTH, receivePeriod * i);
instance.add(Calendar.DAY_OF_MONTH, -1);
Date time = instance.getTime();
wxBillRent.setReceiveDate(time);
@@ -243,7 +255,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
wxBillRent.setReceiveDate(time);
} else {//截止收租日在当前时间之后
Calendar now = Calendar.getInstance();
now.add(Calendar.MONTH, receivePeriod.intValue());
now.add(Calendar.MONTH, receivePeriod);
Date currenttime = now.getTime();
//当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴
if (currenttime.before(wxBillRent.getReceiveDate())) {


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

@@ -124,12 +124,14 @@ public class WxRentContractServiceImpl implements WxRentContractService {
record.setPrice(record.getPrice() != null ? record.getPrice() * 100 : 0);
record.setDeposit(record.getDeposit() != null ? record.getDeposit() * 100 : 0);
record.setUpdatetime(new Date());
if(record.getPrice()==0 || record.getDeposit()==0){
record.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode());
}
try {
wxRentContractMapper.updateByPrimaryKeySelective(record);

//建立账单
if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode())
&& record.getReceivePeriod() != null) {
&& record.getReceivePeriod() != null && record.getDeposit()>0 && record.getPrice()>0) {
WxBillRent wxBillRent = new WxBillRent();
wxBillRent.setMerchantId(record.getMerchantId());
List<Map<String, Object>> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent);
@@ -218,8 +220,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract);
if (list.size() > 0) {
wxRentContract = list.get(0);
Integer receivePeriod = wxRentContract.getReceivePeriod();
int paycount = 12 / receivePeriod.intValue();
int receivePeriod = wxRentContract.getReceivePeriod().intValue();
Integer lease = wxRentContract.getLease();
int extralease =lease%receivePeriod;
int extracount=extralease>0?1:0;
int paycount = lease / receivePeriod+extracount;
final IdWorker idWorker = IdWorker.get();
for (int i = 0; i < paycount; i++) {
WxBillRent wxBillRent = new WxBillRent();
@@ -227,14 +232,19 @@ public class WxRentContractServiceImpl implements WxRentContractService {
wxBillRent.setRentContractId(wxRentContract.getId());
wxBillRent.setReceivePay(0);
wxBillRent.setPay(0);
int needpay = wxRentContract.getPrice();
int needpay = wxRentContract.getPrice()*receivePeriod;
if(extracount>0){
if(i==paycount-1){
needpay = wxRentContract.getPrice()*extralease;
}
}
wxBillRent.setNeedPay(needpay);
wxBillRent.setOwe(needpay);

Date date = new Date();
Calendar instance = Calendar.getInstance();
instance.setTime(wxRentContract.getRentalStartDate());
instance.add(Calendar.MONTH, receivePeriod.intValue() * i);
instance.add(Calendar.MONTH, receivePeriod* i);
instance.add(Calendar.DAY_OF_MONTH, -1);
Date time = instance.getTime();
wxBillRent.setReceiveDate(time);
@@ -246,7 +256,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
wxBillRent.setReceiveDate(time);
} else {//截止收租日在当前时间之后
Calendar now = Calendar.getInstance();
now.add(Calendar.MONTH, receivePeriod.intValue());
now.add(Calendar.MONTH, receivePeriod);
Date currenttime = now.getTime();
//当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴
if (currenttime.before(wxBillRent.getReceiveDate())) {


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