|
@@ -3,13 +3,13 @@ package com.dayou.utils;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.json.*;
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
+import com.aspose.words.Document;
|
|
|
+import com.aspose.words.DocumentBuilder;
|
|
|
+import com.aspose.words.Font;
|
|
|
import com.dayou.dto.Address;
|
|
|
+import com.dayou.dto.HouseRightsDTO;
|
|
|
import com.dayou.dto.HouseGuarantyTargetDTO;
|
|
|
-import com.dayou.dto.HousePledgeDTO;
|
|
|
-import com.dayou.entity.CertificateLandUse;
|
|
|
-import com.dayou.entity.HouseGuarantyTarget;
|
|
|
-import com.dayou.entity.HouseTargetEntity;
|
|
|
-import com.dayou.entity.TmplHouseParagraph;
|
|
|
+import com.dayou.entity.*;
|
|
|
import com.dayou.enums.HouseTargetTableColumn;
|
|
|
import com.dayou.exception.ErrorCode;
|
|
|
|
|
@@ -1443,6 +1443,9 @@ public class HouseDocumentUtil {
|
|
|
StringBuilder resultDesc = new StringBuilder();
|
|
|
if (CollectionUtil.isNotEmpty(entities)){
|
|
|
for (HouseTargetEntity entity : entities){
|
|
|
+ if (entity.getCertCombination()==null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
//第一段
|
|
|
StringBuilder p = new StringBuilder("估价对象"+entity.getTid()+"序号"+entity.getTno()+"\n");
|
|
|
if (entity.getCertCombination()==5 || entity.getCertCombination()==6){
|
|
@@ -1452,11 +1455,11 @@ public class HouseDocumentUtil {
|
|
|
.append(entity.getWestWay()).append(",南临").append(entity.getSouthWay())
|
|
|
.append(",北临").append(entity.getNorthWay()).append("。");
|
|
|
}else if (entity.getCertCombination() == 4){
|
|
|
- p.append("土地开发程度:经注册房地产估价师实地查勘,至价值时点,估价对象所在宗地上已修建")
|
|
|
+ p.append("(1)土地开发程度:经注册房地产估价师实地查勘,至价值时点,估价对象所在宗地上已修建")
|
|
|
.append(entity.getUseTo()).append("用房,土地开发程度为").append(entity.getLandDeep())
|
|
|
.append(";根据委托人提供的资料,估价对象所在宗地接城市供水、排水系统,雨水、污水分流处理,供电接城市电网,固定电话、网络接城市通讯网,移动讯号全覆盖。");
|
|
|
}else if (entity.getCertCombination() == 2 || entity.getCertCombination() == 3){
|
|
|
- p.append("估价对象土地坐落、用途、面积、使用权类型、土地使用年期:根据估价对象权利人提供的")
|
|
|
+ p.append("(1)估价对象土地坐落、用途、面积、使用权类型、土地使用年期:根据估价对象权利人提供的")
|
|
|
.append(entity.getLandCertificateNo()).append("《国有土地使用证》记载,估价对象所在宗地位于")
|
|
|
.append(entity.getLandLocation()).append(",估价对象占用").append(entity.getLandUseType())
|
|
|
.append(entity.getLandUseTo()).append("土地使用权面积:").append(entity.getLandAcreage())
|
|
@@ -1465,7 +1468,7 @@ public class HouseDocumentUtil {
|
|
|
.append(entity.getWestWay()).append(",南临").append(entity.getSouthWay())
|
|
|
.append(",北临").append(entity.getNorthWay()).append("。");
|
|
|
}else{
|
|
|
- p.append("估价对象土地坐落、用途、面积、使用权类型、土地使用年期:根据估价对象权利人提供的")
|
|
|
+ p.append("(1)估价对象土地坐落、用途、面积、使用权类型、土地使用年期:根据估价对象权利人提供的")
|
|
|
.append(entity.getAssetsCertificateNo()).append("《不动产权证书》记载,估价对象所在宗地位于")
|
|
|
.append(entity.getAssetsLocation()).append(",估价对象占用").append(entity.getAssetsUseType())
|
|
|
.append(entity.getAssetsUseTo()).append("土地使用权面积:").append(entity.getAssetsAcreage())
|
|
@@ -1489,4 +1492,127 @@ public class HouseDocumentUtil {
|
|
|
return resultDesc.toString();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 组合估价对象权益状况描述
|
|
|
+ * @param doc
|
|
|
+ * @param rights
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static void getRightsDesc(Document doc,List<HouseRightsDTO> rights,Boolean checkOriginCerts) throws Exception {
|
|
|
+ //构造 builder
|
|
|
+ DocumentBuilder builder = new DocumentBuilder(doc);
|
|
|
+ //将 光标移动到指定书签处,准备创作
|
|
|
+ builder.moveToBookmark("rightsInfo", true, false);
|
|
|
+
|
|
|
+ String copys = checkOriginCerts?"":"(复印件)";
|
|
|
+
|
|
|
+ Map<String, List<HouseRightsDTO>> rightsMap = rights.stream().collect(Collectors.groupingBy(HouseRightsDTO::getTid));
|
|
|
+
|
|
|
+ for (Map.Entry<String, List<HouseRightsDTO>> entry : rightsMap.entrySet()){
|
|
|
+ //设置字体样式
|
|
|
+ Font font = builder.getFont();
|
|
|
+ font.setName("宋体");
|
|
|
+ font.setSize(14);
|
|
|
+
|
|
|
+ for (int i=0; i<entry.getValue().size() ; i++){
|
|
|
+ HouseRightsDTO right = entry.getValue().get(i);
|
|
|
+ CertificateFixedAssets assetsCert = right.getAssetsCert();
|
|
|
+ CertificateHouseOwn houseOwnCert = right.getHouseOwnCert();
|
|
|
+ CertificateLandUse landUseCert = right.getLandUseCert();
|
|
|
+
|
|
|
+ //用途
|
|
|
+ String useTo = "";
|
|
|
+
|
|
|
+ builder.writeln("估价对象"+entry.getKey()+"序号"+right.getTno());
|
|
|
+ int j = 1;
|
|
|
+ if (assetsCert != null){
|
|
|
+ useTo = right.getAssetsCert().getUseTo();
|
|
|
+ builder.writeln(j+".不动产权属状况");
|
|
|
+ builder.writeln("根据委托人提供的《不动产权证书》"+copys+",估价对象不动产权属登记状况如下:");
|
|
|
+ AsposeWordUtil.createTable(builder, CertificateFixedAssets.class, Collections.singletonList(right.getAssetsCert()));
|
|
|
+ j++;
|
|
|
+ }
|
|
|
+ if (houseOwnCert != null){
|
|
|
+ useTo = right.getHouseOwnCert().getUseTo();
|
|
|
+ builder.writeln(j+".房屋权属状况");
|
|
|
+ builder.writeln("根据委托人提供的《房屋所有权证》" + copys + ",估价对象房屋权益登记状况如下:");
|
|
|
+ builder.writeln("序号"+ right.getTno()+":");
|
|
|
+ AsposeWordUtil.createTable(builder, CertificateHouseOwn.class, Collections.singletonList(right.getHouseOwnCert()));
|
|
|
+ j++;
|
|
|
+ }
|
|
|
+ if (landUseCert != null){
|
|
|
+ builder.writeln(j+".土地权属状况");
|
|
|
+ builder.writeln("根据委托人提供的《国有土地使用证》"+copys+",估价对象土地权属登记状况如下:");
|
|
|
+ builder.writeln("序号"+ right.getTno()+":");
|
|
|
+ AsposeWordUtil.createTable(builder, CertificateLandUse.class, Collections.singletonList(right.getLandUseCert()));
|
|
|
+ j++;
|
|
|
+ }
|
|
|
+
|
|
|
+ builder.writeln(j+".担保物权状况");
|
|
|
+ //是否设置抵押权
|
|
|
+ Boolean hasPledge = right.getHasPledge();
|
|
|
+
|
|
|
+ if (hasPledge != null && !hasPledge){
|
|
|
+ builder.writeln("根据估价对象权利人提供的《房地产评估委托、确认书》《估价对象权利状况、法定优先受偿款调查说明及承诺书》,经注册房地产估价师实地查勘,至价值时点,估价对象未设定抵押等他项权利。");
|
|
|
+ j++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (hasPledge != null && hasPledge){
|
|
|
+ builder.writeln("根据估价对象权利人介绍和提供的“房地产评估委托、确认书”、“估价对象权利状况、法定优先受偿款调查说明及承诺书”,经注册房地产估价师实地查勘,至价值时点,估价对象已设立了"
|
|
|
+ +right.getPledgeType()+","+(right.getPledgeType().equals("一般抵押权")?"抵押权利价值为":"最高债权额为")+right.getPledgeValue()+"万元,抵押权人为"+right.getPledgeUser()+"。");
|
|
|
+ j++;
|
|
|
+ }
|
|
|
+
|
|
|
+ builder.writeln(j+".用益物权状况");
|
|
|
+
|
|
|
+ Boolean hasLandUseRight = right.getHasLandUseRight();
|
|
|
+ Boolean hasLivingRight = right.getHasLivingRight();
|
|
|
+ if (hasLandUseRight!=null && hasLivingRight!=null){
|
|
|
+ if (!hasLandUseRight && !hasLivingRight && "住宅".equals(useTo)){
|
|
|
+ builder.writeln("根据估价对象权利人提供的 “估价对象权利状况、法定优先受偿款调查说明及承诺书”,至价值时点,估价对象未设立居住权、地役权。");
|
|
|
+ j++;
|
|
|
+ }else if(hasLandUseRight && !hasLivingRight && "住宅".equals(useTo)){
|
|
|
+ String landUseRightFrom = right.getLandUseRightFrom();
|
|
|
+ String landUseRightTo = right.getLandUseRightTo();
|
|
|
+ builder.writeln("根据估价对象权利人提供的 “估价对象权利状况、法定优先受偿款调查说明及承诺书”,至价值时点,估价对象用益物权已设立地役权,供役地权利人为"+landUseRightFrom+",需役地权利人为"+landUseRightTo+",当事人双方已订立地役权合同。估价对象未设置居住权。");
|
|
|
+ j++;
|
|
|
+ }else if (!hasLandUseRight && hasLivingRight && "住宅".equals(useTo)){
|
|
|
+ builder.writeln("根据估价对象权利人提供的“估价对象权利状况、法定优先受偿款调查说明及承诺书”,至价值时点,估价对象用益物权已设立居住权,当事人双方已订立居住权合同,并已向登记机构登记。估价对象未设置地役权。");
|
|
|
+ j++;
|
|
|
+ }else if (!hasLandUseRight && !"住宅".equals(useTo)){
|
|
|
+ builder.writeln("根据估价对象权利人提供的“估价对象权利状况、法定优先受偿款调查说明及承诺书”,至价值时点,估价对象未设立地役权。");
|
|
|
+ j++;
|
|
|
+ }else if (hasLandUseRight && !"住宅".equals(useTo)){
|
|
|
+ String landUseRightFrom = right.getLandUseRightFrom();
|
|
|
+ String landUseRightTo = right.getLandUseRightTo();
|
|
|
+ builder.writeln("根据估价对象权利人提供的 “估价对象权利状况、法定优先受偿款调查说明及承诺书”,至价值时点,估价对象用益物权已设立地役权,供役地权利人为"+landUseRightFrom+",需役地权利人为"+landUseRightTo+",当事人双方已订立地役权合同。");
|
|
|
+ j++;
|
|
|
+ }else if (hasLandUseRight && hasLivingRight && "住宅".equals(useTo)){
|
|
|
+ String landUseRightFrom = right.getLandUseRightFrom();
|
|
|
+ String landUseRightTo = right.getLandUseRightTo();
|
|
|
+ builder.writeln("根据估价对象权利人提供的 “估价对象权利状况、法定优先受偿款调查说明及承诺书”,至价值时点,估价对象用益物权已设立地役权,供役地权利人为"+landUseRightFrom+",需役地权利人为"+landUseRightTo+",当事人双方已订立地役权合同。估价对象用益物权已设立居住权,当事人双方已订立居住权合同,并已向登记机构登记。");
|
|
|
+ j++;
|
|
|
+ }else {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ builder.writeln(j+".租赁或占用情况");
|
|
|
+
|
|
|
+ if (hasPledge != null && !hasPledge){
|
|
|
+ builder.writeln("根据估价对象权利人介绍和提供的“估价对象权利状况、法定优先受偿款调查说明及承诺书”、“估价对象权利状况说明及承诺书”,经注册房地产估价师实地查勘,至价值时点,估价对象未出租,目前为"+right.getUseInfo()+"。");
|
|
|
+ }
|
|
|
+
|
|
|
+ Boolean hasRentOutContract = right.getHasRentOutContract();
|
|
|
+ if (hasPledge != null && hasPledge && hasRentOutContract!=null && hasRentOutContract){
|
|
|
+ builder.writeln("根据估价对象权利人提供的“房地产评估委托、确认书”、“估价对象权利状况、法定优先受偿款调查说明及承诺书”,经注册房地产估价师实地查勘,至价值时点,估价对象已出租,承租方为"+right.getRentUser()+"租赁期限:"+right.getRentStartDate()+"至"+right.getRentEndDate()+",至价值时点的租金为"+right.getRentMoney()+"元/㎡·月。");
|
|
|
+ }
|
|
|
+ if (hasPledge != null && hasPledge && hasRentOutContract!=null && !hasRentOutContract){
|
|
|
+ builder.writeln("根据估价对象权利人提供的“房地产评估委托、确认书”、“估价对象权利状况、法定优先受偿款调查说明及承诺书”,经注册房地产估价师实地查勘,至价值时点,估价对象已出租,但估价对象权利人未提供估价对象租赁合同。");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|