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

[合同][修改][下载合同]

release_toaliyun_real
gongbiao 7 лет назад
Родитель
Сommit
e4cf8381b6
2 измененных файлов: 160 добавлений и 75 удалений
  1. +160
    -75
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  2. Двоичные данные
      mallinkService/src/main/resources/contract-word-template/contract_rent_property_by_ratio.docx

+ 160
- 75
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<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();
propertyContract.setTenantId(wxRentContract.getTenantId());
@@ -900,6 +835,156 @@ public class WxRentContractServiceImpl implements WxRentContractService {
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
* <p>第一步生成替换后的word文件,只支持docx</p>


Двоичные данные
mallinkService/src/main/resources/contract-word-template/contract_rent_property_by_ratio.docx Просмотреть файл


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