diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 54ad14238..8deebc787 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -641,7 +641,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { logger.info("获取租赁及物业合同数据"); result = getRentAndPropertyInfo(id); 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); } @@ -729,87 +733,18 @@ public class WxRentContractServiceImpl implements WxRentContractService { result.put("cashDepositMonthRent", cashDepositMonthRent); result.put("cashDepositRent", cashDepositRent); result.put("cashDepositRentUpper", digitUppercase(cashDepositRent)); - + result.put("type",wxRentContract.getType()); int extralease = lease % 12; int extracount = extralease > 0 ? 1 : 0; int paycount = lease / 12 + extracount; int index = 10-paycount; int count=paycount-1; 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 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 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第一步生成替换后的word文件,只支持docx

diff --git a/mallinkService/src/main/resources/contract-word-template/contract_rent_property_by_ratio.docx b/mallinkService/src/main/resources/contract-word-template/contract_rent_property_by_ratio.docx new file mode 100644 index 000000000..bf4fa0987 Binary files /dev/null and b/mallinkService/src/main/resources/contract-word-template/contract_rent_property_by_ratio.docx differ