| @@ -1,8 +1,10 @@ | |||
| package com.iformall.enums; | |||
| /** | |||
| * Created by Stormeye on 2018/08/09. | |||
| * @author gongbiao | |||
| */ | |||
| public enum EnumRentContractStatus { | |||
| WAIT_SIGN(1, "待签约"), | |||
| @@ -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())) { | |||
| @@ -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())) { | |||
| @@ -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())) { | |||