| @@ -1,8 +1,10 @@ | |||||
| package com.iformall.enums; | package com.iformall.enums; | ||||
| /** | /** | ||||
| * Created by Stormeye on 2018/08/09. | |||||
| * @author gongbiao | |||||
| */ | */ | ||||
| public enum EnumRentContractStatus { | public enum EnumRentContractStatus { | ||||
| WAIT_SIGN(1, "待签约"), | WAIT_SIGN(1, "待签约"), | ||||
| @@ -225,7 +225,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | ||||
| wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); | wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); | ||||
| //创建账单 | //创建账单 | ||||
| buildRent(wxRentContract); | |||||
| buildRent(wxMerchant); | |||||
| //创建押金 | //创建押金 | ||||
| buildDeposit(wxMerchant); | buildDeposit(wxMerchant); | ||||
| } | } | ||||
| @@ -333,10 +333,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| wxAppinfo.setTenantId(wxMerchant.getTenantId()); | wxAppinfo.setTenantId(wxMerchant.getTenantId()); | ||||
| wxAppinfo.setType(EnumAppType.B.getCode()); | wxAppinfo.setType(EnumAppType.B.getCode()); | ||||
| List<WxAppinfo> list = wxAppinfoMapper.findList(wxAppinfo); | List<WxAppinfo> list = wxAppinfoMapper.findList(wxAppinfo); | ||||
| if(list.size()==0){ | |||||
| if (list.size() == 0) { | |||||
| return new ResultData(ErrorCode.APP_ID_NOT_FOUND); | return new ResultData(ErrorCode.APP_ID_NOT_FOUND); | ||||
| } | } | ||||
| wxAppinfo=list.get(0); | |||||
| wxAppinfo = list.get(0); | |||||
| List<WxMerchantBUser> bUsers = wxMerchant.getbUsers(); | List<WxMerchantBUser> bUsers = wxMerchant.getbUsers(); | ||||
| //删除之前的关联用户 | //删除之前的关联用户 | ||||
| @@ -457,7 +457,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | ||||
| wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); | wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); | ||||
| //创建账单 | //创建账单 | ||||
| buildRent(wxRentContract); | |||||
| buildRent(wxMerchant); | |||||
| //创建押金 | //创建押金 | ||||
| buildDeposit(wxMerchant); | buildDeposit(wxMerchant); | ||||
| } | } | ||||
| @@ -576,7 +576,6 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract); | List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract); | ||||
| if (list.size() > 0) { | if (list.size() > 0) { | ||||
| wxRentContract = list.get(0); | wxRentContract = list.get(0); | ||||
| Integer receivePeriod = wxRentContract.getReceivePeriod(); | |||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| WxBillDeposit wxBillDeposit = new WxBillDeposit(); | WxBillDeposit wxBillDeposit = new WxBillDeposit(); | ||||
| wxBillDeposit.setId(idWorker.nextId()); | wxBillDeposit.setId(idWorker.nextId()); | ||||
| @@ -622,17 +621,21 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | @Transactional(rollbackFor = {Exception.class}) | ||||
| public void buildRent(WxRentContract wxRentContract) { | |||||
| public void buildRent(WxMerchant wxMerchant) { | |||||
| //获取用户 | //获取用户 | ||||
| MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); | MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); | ||||
| WxRentContract wxRentContract = new WxRentContract(); | |||||
| wxRentContract.setMerchantId(wxMerchant.getId()); | |||||
| //根据商户ID找出合同 | //根据商户ID找出合同 | ||||
| List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract); | List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract); | ||||
| if (list.size() > 0) { | if (list.size() > 0) { | ||||
| wxRentContract = list.get(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(); | final IdWorker idWorker = IdWorker.get(); | ||||
| for (int i = 0; i < paycount; i++) { | for (int i = 0; i < paycount; i++) { | ||||
| WxBillRent wxBillRent = new WxBillRent(); | WxBillRent wxBillRent = new WxBillRent(); | ||||
| @@ -640,14 +643,20 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| wxBillRent.setRentContractId(wxRentContract.getId()); | wxBillRent.setRentContractId(wxRentContract.getId()); | ||||
| wxBillRent.setReceivePay(0); | wxBillRent.setReceivePay(0); | ||||
| wxBillRent.setPay(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.setNeedPay(needpay); | ||||
| wxBillRent.setOwe(needpay); | wxBillRent.setOwe(needpay); | ||||
| Date date = new Date(); | Date date = new Date(); | ||||
| Calendar instance = Calendar.getInstance(); | Calendar instance = Calendar.getInstance(); | ||||
| instance.setTime(wxRentContract.getRentalStartDate()); | instance.setTime(wxRentContract.getRentalStartDate()); | ||||
| instance.add(Calendar.MONTH, receivePeriod.intValue() * i); | |||||
| instance.add(Calendar.MONTH, receivePeriod * i); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | instance.add(Calendar.DAY_OF_MONTH, -1); | ||||
| Date time = instance.getTime(); | Date time = instance.getTime(); | ||||
| wxBillRent.setReceiveDate(time); | wxBillRent.setReceiveDate(time); | ||||
| @@ -659,7 +668,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| wxBillRent.setReceiveDate(time); | wxBillRent.setReceiveDate(time); | ||||
| } else {//截止收租日在当前时间之后 | } else {//截止收租日在当前时间之后 | ||||
| Calendar now = Calendar.getInstance(); | Calendar now = Calendar.getInstance(); | ||||
| now.add(Calendar.MONTH, receivePeriod.intValue()); | |||||
| now.add(Calendar.MONTH, receivePeriod); | |||||
| Date currenttime = now.getTime(); | Date currenttime = now.getTime(); | ||||
| //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 | //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 | ||||
| if (currenttime.before(wxBillRent.getReceiveDate())) { | if (currenttime.before(wxBillRent.getReceiveDate())) { | ||||
| @@ -114,6 +114,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| } | } | ||||
| return new ResultData(Result.SUCCESS, "保存物业合同信息成功", record); | return new ResultData(Result.SUCCESS, "保存物业合同信息成功", record); | ||||
| } else {//更新物业合同信息 | } else {//更新物业合同信息 | ||||
| Calendar instance = Calendar.getInstance(); | Calendar instance = Calendar.getInstance(); | ||||
| instance.setTime(record.getRentalStartDate()); | instance.setTime(record.getRentalStartDate()); | ||||
| instance.add(Calendar.MONTH, record.getLease()); | 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.setPrice(record.getPrice() != null ? record.getPrice() * 100 : 0); | ||||
| record.setDeposit(record.getDeposit() != null ? record.getDeposit() * 100 : 0); | record.setDeposit(record.getDeposit() != null ? record.getDeposit() * 100 : 0); | ||||
| record.setUpdatetime(new Date()); | record.setUpdatetime(new Date()); | ||||
| if(record.getPrice()==0 || record.getDeposit()==0){ | |||||
| record.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); | |||||
| } | |||||
| try { | try { | ||||
| wxPropertyContractMapper.updateByPrimaryKeySelective(record); | wxPropertyContractMapper.updateByPrimaryKeySelective(record); | ||||
| //建立账单 | //建立账单 | ||||
| if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) | 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 wxBillProperty = new WxBillProperty(); | ||||
| wxBillProperty.setMerchantId(record.getMerchantId()); | wxBillProperty.setMerchantId(record.getMerchantId()); | ||||
| List<Map<String, Object>> billPropertyList = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty); | List<Map<String, Object>> billPropertyList = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty); | ||||
| @@ -215,8 +219,11 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| List<WxPropertyContract> list = wxPropertyContractMapper.findList(wxPropertyContract); | List<WxPropertyContract> list = wxPropertyContractMapper.findList(wxPropertyContract); | ||||
| if (list.size() > 0) { | if (list.size() > 0) { | ||||
| wxPropertyContract = list.get(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(); | final IdWorker idWorker = IdWorker.get(); | ||||
| for (int i = 0; i < paycount; i++) { | for (int i = 0; i < paycount; i++) { | ||||
| WxBillProperty wxBillRent = new WxBillProperty(); | WxBillProperty wxBillRent = new WxBillProperty(); | ||||
| @@ -224,14 +231,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| wxBillRent.setPropertyContractId(wxPropertyContract.getId()); | wxBillRent.setPropertyContractId(wxPropertyContract.getId()); | ||||
| wxBillRent.setReceivePay(0); | wxBillRent.setReceivePay(0); | ||||
| wxBillRent.setPay(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.setNeedPay(needpay); | ||||
| wxBillRent.setOwe(needpay); | wxBillRent.setOwe(needpay); | ||||
| Date date = new Date(); | Date date = new Date(); | ||||
| Calendar instance = Calendar.getInstance(); | Calendar instance = Calendar.getInstance(); | ||||
| instance.setTime(wxPropertyContract.getRentalStartDate()); | instance.setTime(wxPropertyContract.getRentalStartDate()); | ||||
| instance.add(Calendar.MONTH, receivePeriod.intValue() * i); | |||||
| instance.add(Calendar.MONTH, receivePeriod * i); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | instance.add(Calendar.DAY_OF_MONTH, -1); | ||||
| Date time = instance.getTime(); | Date time = instance.getTime(); | ||||
| wxBillRent.setReceiveDate(time); | wxBillRent.setReceiveDate(time); | ||||
| @@ -243,7 +255,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| wxBillRent.setReceiveDate(time); | wxBillRent.setReceiveDate(time); | ||||
| } else {//截止收租日在当前时间之后 | } else {//截止收租日在当前时间之后 | ||||
| Calendar now = Calendar.getInstance(); | Calendar now = Calendar.getInstance(); | ||||
| now.add(Calendar.MONTH, receivePeriod.intValue()); | |||||
| now.add(Calendar.MONTH, receivePeriod); | |||||
| Date currenttime = now.getTime(); | Date currenttime = now.getTime(); | ||||
| //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 | //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 | ||||
| if (currenttime.before(wxBillRent.getReceiveDate())) { | if (currenttime.before(wxBillRent.getReceiveDate())) { | ||||
| @@ -124,12 +124,14 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| record.setPrice(record.getPrice() != null ? record.getPrice() * 100 : 0); | record.setPrice(record.getPrice() != null ? record.getPrice() * 100 : 0); | ||||
| record.setDeposit(record.getDeposit() != null ? record.getDeposit() * 100 : 0); | record.setDeposit(record.getDeposit() != null ? record.getDeposit() * 100 : 0); | ||||
| record.setUpdatetime(new Date()); | record.setUpdatetime(new Date()); | ||||
| if(record.getPrice()==0 || record.getDeposit()==0){ | |||||
| record.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); | |||||
| } | |||||
| try { | try { | ||||
| wxRentContractMapper.updateByPrimaryKeySelective(record); | wxRentContractMapper.updateByPrimaryKeySelective(record); | ||||
| //建立账单 | //建立账单 | ||||
| if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) | 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 wxBillRent = new WxBillRent(); | ||||
| wxBillRent.setMerchantId(record.getMerchantId()); | wxBillRent.setMerchantId(record.getMerchantId()); | ||||
| List<Map<String, Object>> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent); | List<Map<String, Object>> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent); | ||||
| @@ -218,8 +220,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract); | List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract); | ||||
| if (list.size() > 0) { | if (list.size() > 0) { | ||||
| wxRentContract = list.get(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(); | final IdWorker idWorker = IdWorker.get(); | ||||
| for (int i = 0; i < paycount; i++) { | for (int i = 0; i < paycount; i++) { | ||||
| WxBillRent wxBillRent = new WxBillRent(); | WxBillRent wxBillRent = new WxBillRent(); | ||||
| @@ -227,14 +232,19 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| wxBillRent.setRentContractId(wxRentContract.getId()); | wxBillRent.setRentContractId(wxRentContract.getId()); | ||||
| wxBillRent.setReceivePay(0); | wxBillRent.setReceivePay(0); | ||||
| wxBillRent.setPay(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.setNeedPay(needpay); | ||||
| wxBillRent.setOwe(needpay); | wxBillRent.setOwe(needpay); | ||||
| Date date = new Date(); | Date date = new Date(); | ||||
| Calendar instance = Calendar.getInstance(); | Calendar instance = Calendar.getInstance(); | ||||
| instance.setTime(wxRentContract.getRentalStartDate()); | instance.setTime(wxRentContract.getRentalStartDate()); | ||||
| instance.add(Calendar.MONTH, receivePeriod.intValue() * i); | |||||
| instance.add(Calendar.MONTH, receivePeriod* i); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | instance.add(Calendar.DAY_OF_MONTH, -1); | ||||
| Date time = instance.getTime(); | Date time = instance.getTime(); | ||||
| wxBillRent.setReceiveDate(time); | wxBillRent.setReceiveDate(time); | ||||
| @@ -246,7 +256,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| wxBillRent.setReceiveDate(time); | wxBillRent.setReceiveDate(time); | ||||
| } else {//截止收租日在当前时间之后 | } else {//截止收租日在当前时间之后 | ||||
| Calendar now = Calendar.getInstance(); | Calendar now = Calendar.getInstance(); | ||||
| now.add(Calendar.MONTH, receivePeriod.intValue()); | |||||
| now.add(Calendar.MONTH, receivePeriod); | |||||
| Date currenttime = now.getTime(); | Date currenttime = now.getTime(); | ||||
| //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 | //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 | ||||
| if (currenttime.before(wxBillRent.getReceiveDate())) { | if (currenttime.before(wxBillRent.getReceiveDate())) { | ||||