| @@ -641,7 +641,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| logger.info("获取租赁及物业合同数据"); | logger.info("获取租赁及物业合同数据"); | ||||
| result = getRentAndPropertyInfo(id); | result = getRentAndPropertyInfo(id); | ||||
| result.put("contractType",EnumContractType.ALL.getMessage()); | result.put("contractType",EnumContractType.ALL.getMessage()); | ||||
| templatePath = "contract-word-template/contract_rent_property.docx"; | |||||
| if(EnumRentContractType.RENT_BY_AREA.getCode().equals(result.get("type"))){ | |||||
| templatePath = "contract-word-template/contract_rent_property.docx"; | |||||
| }else{ | |||||
| templatePath = "contract-word-template/contract_rent_property_by_ratio.docx"; | |||||
| } | |||||
| logger.info("租赁及物业合同数据结果:" + result); | logger.info("租赁及物业合同数据结果:" + result); | ||||
| } | } | ||||
| @@ -729,87 +733,18 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| result.put("cashDepositMonthRent", cashDepositMonthRent); | result.put("cashDepositMonthRent", cashDepositMonthRent); | ||||
| result.put("cashDepositRent", cashDepositRent); | result.put("cashDepositRent", cashDepositRent); | ||||
| result.put("cashDepositRentUpper", digitUppercase(cashDepositRent)); | result.put("cashDepositRentUpper", digitUppercase(cashDepositRent)); | ||||
| result.put("type",wxRentContract.getType()); | |||||
| int extralease = lease % 12; | int extralease = lease % 12; | ||||
| int extracount = extralease > 0 ? 1 : 0; | int extracount = extralease > 0 ? 1 : 0; | ||||
| int paycount = lease / 12 + extracount; | int paycount = lease / 12 + extracount; | ||||
| int index = 10-paycount; | int index = 10-paycount; | ||||
| int count=paycount-1; | int count=paycount-1; | ||||
| BigDecimal rentPrice = new BigDecimal(priceRent); | BigDecimal rentPrice = new BigDecimal(priceRent); | ||||
| //常规租期 | |||||
| for (int i = 0; i < count; i++) { | |||||
| //开始时间 | |||||
| Calendar instance = Calendar.getInstance(); | |||||
| instance.setTime(wxRentContract.getRentalStartDate()); | |||||
| instance.add(Calendar.MONTH, lease*i); | |||||
| Date starttime = instance.getTime(); | |||||
| String startdate = DateUtils.date2String(starttime, "yyyy-MM-dd"); | |||||
| result.put("rentalStartDate"+i,startdate); | |||||
| result.put("rentalStartDateYear"+i, startdate.substring(0, 4)); | |||||
| result.put("rentalStartDateMonth"+i, startdate.substring(5, 7)); | |||||
| result.put("rentalStartDateDay"+i, startdate.substring(8)); | |||||
| //结束时间 | |||||
| instance.clear(); | |||||
| instance.setTime(starttime); | |||||
| instance.add(Calendar.MONTH, lease); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | |||||
| Date endtime = instance.getTime(); | |||||
| String enddate = DateUtils.date2String(endtime, "yyyy-MM-dd"); | |||||
| result.put("rentalEndDate"+i,enddate); | |||||
| result.put("rentalEndDateYear"+i, enddate.substring(0, 4)); | |||||
| result.put("rentalEndDateMonth"+i, enddate.substring(5, 7)); | |||||
| result.put("rentalEndDateDay"+i, enddate.substring(8)); | |||||
| if(i>0){ | |||||
| rentPrice = rentPrice.multiply(new BigDecimal(adjustRatio)) | |||||
| .add(rentPrice).setScale(2, RoundingMode.HALF_EVEN); | |||||
| result.put("priceRentUpper"+i,digitUppercase(rentPrice.doubleValue())); | |||||
| result.put("priceRent"+i,digitUppercase(rentPrice.doubleValue())); | |||||
| } | |||||
| } | |||||
| if(extracount>0){ | |||||
| //额外租期 | |||||
| //开始时间 | |||||
| Calendar instance = Calendar.getInstance(); | |||||
| instance.setTime(wxRentContract.getRentalStartDate()); | |||||
| instance.add(Calendar.MONTH, lease*count); | |||||
| Date starttime = instance.getTime(); | |||||
| String startdate = DateUtils.date2String(starttime, "yyyy-MM-dd"); | |||||
| result.put("rentalStartDate"+count,startdate); | |||||
| result.put("rentalStartDateYear"+count, startdate.substring(0, 4)); | |||||
| result.put("rentalStartDateMonth"+count, startdate.substring(5, 7)); | |||||
| result.put("rentalStartDateDay"+count, startdate.substring(8)); | |||||
| //结束时间 | |||||
| instance.clear(); | |||||
| instance.setTime(starttime); | |||||
| instance.add(Calendar.MONTH, extralease); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | |||||
| Date endtime = instance.getTime(); | |||||
| String enddate = DateUtils.date2String(endtime, "yyyy-MM-dd"); | |||||
| result.put("rentalEndDate"+count,enddate); | |||||
| result.put("rentalEndDateYear"+count, enddate.substring(0, 4)); | |||||
| result.put("rentalEndDateMonth"+count, enddate.substring(5, 7)); | |||||
| result.put("rentalEndDateDay"+count, enddate.substring(8)); | |||||
| rentPrice = rentPrice.multiply(new BigDecimal(adjustRatio)) | |||||
| .add(rentPrice).setScale(2, RoundingMode.HALF_EVEN); | |||||
| result.put("priceRentUpper"+count,digitUppercase(rentPrice.doubleValue())); | |||||
| result.put("priceRent"+count,digitUppercase(rentPrice.doubleValue())); | |||||
| } | |||||
| //无数据租期 | |||||
| for(int i=paycount;i<index;i++){ | |||||
| result.put("rentalStartDate"+i,"/"); | |||||
| result.put("rentalStartDateYear"+i, "/"); | |||||
| result.put("rentalStartDateMonth"+i, "/"); | |||||
| result.put("rentalStartDateDay"+i, "/"); | |||||
| result.put("rentalEndDate"+i,"/"); | |||||
| result.put("rentalEndDateYear"+i, "/"); | |||||
| result.put("rentalEndDateMonth"+i, "/"); | |||||
| result.put("rentalEndDateDay"+i, "/"); | |||||
| result.put("priceRentUpper"+i,"/"); | |||||
| result.put("priceRent"+i,"/"); | |||||
| if(wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA.getCode())){ | |||||
| areaWay(wxRentContract, result, lease, adjustRatio, extralease, extracount, paycount, index, count, rentPrice); | |||||
| }else{ | |||||
| ratioWay(wxRentContract, result, lease, adjustRatio, extralease, extracount, paycount, index, count, rentPrice); | |||||
| } | } | ||||
| //物业合同信息 | //物业合同信息 | ||||
| WxPropertyContract propertyContract = new WxPropertyContract(); | WxPropertyContract propertyContract = new WxPropertyContract(); | ||||
| propertyContract.setTenantId(wxRentContract.getTenantId()); | propertyContract.setTenantId(wxRentContract.getTenantId()); | ||||
| @@ -900,6 +835,156 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| return result; | return result; | ||||
| } | } | ||||
| public void ratioWay(WxRentContract wxRentContract, Map<String,Object> result, Integer lease, double adjustRatio, int extralease, int extracount, int paycount, int index, int count, BigDecimal rentPrice) { | |||||
| double payRatio = wxRentContract.getPayRatio()!=null?wxRentContract.getPayRatio() / 100.0:0; | |||||
| //常规租期 | |||||
| for (int i = 0; i < count; i++) { | |||||
| //开始时间 | |||||
| Calendar instance = Calendar.getInstance(); | |||||
| instance.setTime(wxRentContract.getRentalStartDate()); | |||||
| instance.add(Calendar.MONTH, lease*i); | |||||
| Date starttime = instance.getTime(); | |||||
| String startdate = DateUtils.date2String(starttime, "yyyy-MM-dd"); | |||||
| result.put("rentalStartDate"+i,startdate); | |||||
| result.put("rentalStartDateYear"+i, startdate.substring(0, 4)); | |||||
| result.put("rentalStartDateMonth"+i, startdate.substring(5, 7)); | |||||
| result.put("rentalStartDateDay"+i, startdate.substring(8)); | |||||
| //结束时间 | |||||
| instance.clear(); | |||||
| instance.setTime(starttime); | |||||
| instance.add(Calendar.MONTH, lease); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | |||||
| Date endtime = instance.getTime(); | |||||
| String enddate = DateUtils.date2String(endtime, "yyyy-MM-dd"); | |||||
| result.put("rentalEndDate"+i,enddate); | |||||
| result.put("rentalEndDateYear"+i, enddate.substring(0, 4)); | |||||
| result.put("rentalEndDateMonth"+i, enddate.substring(5, 7)); | |||||
| result.put("rentalEndDateDay"+i, enddate.substring(8)); | |||||
| result.put("adjustRatio"+i,adjustRatio); | |||||
| result.put("adjustPeriod"+i,wxRentContract.getAdjustPeriod()); | |||||
| result.put("payRatio"+i,payRatio); | |||||
| } | |||||
| if(extracount>0){ | |||||
| //额外租期 | |||||
| //开始时间 | |||||
| Calendar instance = Calendar.getInstance(); | |||||
| instance.setTime(wxRentContract.getRentalStartDate()); | |||||
| instance.add(Calendar.MONTH, lease*count); | |||||
| Date starttime = instance.getTime(); | |||||
| String startdate = DateUtils.date2String(starttime, "yyyy-MM-dd"); | |||||
| result.put("rentalStartDate"+count,startdate); | |||||
| result.put("rentalStartDateYear"+count, startdate.substring(0, 4)); | |||||
| result.put("rentalStartDateMonth"+count, startdate.substring(5, 7)); | |||||
| result.put("rentalStartDateDay"+count, startdate.substring(8)); | |||||
| //结束时间 | |||||
| instance.clear(); | |||||
| instance.setTime(starttime); | |||||
| instance.add(Calendar.MONTH, extralease); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | |||||
| Date endtime = instance.getTime(); | |||||
| String enddate = DateUtils.date2String(endtime, "yyyy-MM-dd"); | |||||
| result.put("rentalEndDate"+count,enddate); | |||||
| result.put("rentalEndDateYear"+count, enddate.substring(0, 4)); | |||||
| result.put("rentalEndDateMonth"+count, enddate.substring(5, 7)); | |||||
| result.put("rentalEndDateDay"+count, enddate.substring(8)); | |||||
| result.put("adjustRatio"+count,adjustRatio); | |||||
| result.put("adjustPeriod"+count,wxRentContract.getAdjustPeriod()); | |||||
| result.put("payRatio"+count,payRatio); | |||||
| } | |||||
| //无数据租期 | |||||
| for(int i=paycount;i<index;i++){ | |||||
| result.put("rentalStartDate"+i,"/"); | |||||
| result.put("rentalStartDateYear"+i, "/"); | |||||
| result.put("rentalStartDateMonth"+i, "/"); | |||||
| result.put("rentalStartDateDay"+i, "/"); | |||||
| result.put("rentalEndDate"+i,"/"); | |||||
| result.put("rentalEndDateYear"+i, "/"); | |||||
| result.put("rentalEndDateMonth"+i, "/"); | |||||
| result.put("rentalEndDateDay"+i, "/"); | |||||
| result.put("adjustRatio"+i,"/"); | |||||
| result.put("adjustPeriod"+i,"/"); | |||||
| result.put("payRatio"+i,"/"); | |||||
| } | |||||
| } | |||||
| public void areaWay(WxRentContract wxRentContract, Map<String, Object> result, Integer lease, double adjustRatio, int extralease, int extracount, int paycount, int index, int count, BigDecimal rentPrice) { | |||||
| //常规租期 | |||||
| for (int i = 0; i < count; i++) { | |||||
| //开始时间 | |||||
| Calendar instance = Calendar.getInstance(); | |||||
| instance.setTime(wxRentContract.getRentalStartDate()); | |||||
| instance.add(Calendar.MONTH, lease*i); | |||||
| Date starttime = instance.getTime(); | |||||
| String startdate = DateUtils.date2String(starttime, "yyyy-MM-dd"); | |||||
| result.put("rentalStartDate"+i,startdate); | |||||
| result.put("rentalStartDateYear"+i, startdate.substring(0, 4)); | |||||
| result.put("rentalStartDateMonth"+i, startdate.substring(5, 7)); | |||||
| result.put("rentalStartDateDay"+i, startdate.substring(8)); | |||||
| //结束时间 | |||||
| instance.clear(); | |||||
| instance.setTime(starttime); | |||||
| instance.add(Calendar.MONTH, lease); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | |||||
| Date endtime = instance.getTime(); | |||||
| String enddate = DateUtils.date2String(endtime, "yyyy-MM-dd"); | |||||
| result.put("rentalEndDate"+i,enddate); | |||||
| result.put("rentalEndDateYear"+i, enddate.substring(0, 4)); | |||||
| result.put("rentalEndDateMonth"+i, enddate.substring(5, 7)); | |||||
| result.put("rentalEndDateDay"+i, enddate.substring(8)); | |||||
| if(i>0){ | |||||
| rentPrice = rentPrice.multiply(new BigDecimal(adjustRatio)) | |||||
| .add(rentPrice).setScale(2, RoundingMode.HALF_EVEN); | |||||
| result.put("priceRentUpper"+i,digitUppercase(rentPrice.doubleValue())); | |||||
| result.put("priceRent"+i,digitUppercase(rentPrice.doubleValue())); | |||||
| } | |||||
| } | |||||
| if(extracount>0){ | |||||
| //额外租期 | |||||
| //开始时间 | |||||
| Calendar instance = Calendar.getInstance(); | |||||
| instance.setTime(wxRentContract.getRentalStartDate()); | |||||
| instance.add(Calendar.MONTH, lease*count); | |||||
| Date starttime = instance.getTime(); | |||||
| String startdate = DateUtils.date2String(starttime, "yyyy-MM-dd"); | |||||
| result.put("rentalStartDate"+count,startdate); | |||||
| result.put("rentalStartDateYear"+count, startdate.substring(0, 4)); | |||||
| result.put("rentalStartDateMonth"+count, startdate.substring(5, 7)); | |||||
| result.put("rentalStartDateDay"+count, startdate.substring(8)); | |||||
| //结束时间 | |||||
| instance.clear(); | |||||
| instance.setTime(starttime); | |||||
| instance.add(Calendar.MONTH, extralease); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | |||||
| Date endtime = instance.getTime(); | |||||
| String enddate = DateUtils.date2String(endtime, "yyyy-MM-dd"); | |||||
| result.put("rentalEndDate"+count,enddate); | |||||
| result.put("rentalEndDateYear"+count, enddate.substring(0, 4)); | |||||
| result.put("rentalEndDateMonth"+count, enddate.substring(5, 7)); | |||||
| result.put("rentalEndDateDay"+count, enddate.substring(8)); | |||||
| rentPrice = rentPrice.multiply(new BigDecimal(adjustRatio)) | |||||
| .add(rentPrice).setScale(2, RoundingMode.HALF_EVEN); | |||||
| result.put("priceRentUpper"+count,digitUppercase(rentPrice.doubleValue())); | |||||
| result.put("priceRent"+count,digitUppercase(rentPrice.doubleValue())); | |||||
| } | |||||
| //无数据租期 | |||||
| for(int i=paycount;i<index;i++){ | |||||
| result.put("rentalStartDate"+i,"/"); | |||||
| result.put("rentalStartDateYear"+i, "/"); | |||||
| result.put("rentalStartDateMonth"+i, "/"); | |||||
| result.put("rentalStartDateDay"+i, "/"); | |||||
| result.put("rentalEndDate"+i,"/"); | |||||
| result.put("rentalEndDateYear"+i, "/"); | |||||
| result.put("rentalEndDateMonth"+i, "/"); | |||||
| result.put("rentalEndDateDay"+i, "/"); | |||||
| result.put("priceRentUpper"+i,"/"); | |||||
| result.put("priceRent"+i,"/"); | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * 导出word | * 导出word | ||||
| * <p>第一步生成替换后的word文件,只支持docx</p> | * <p>第一步生成替换后的word文件,只支持docx</p> | ||||