Sfoglia il codice sorgente

[合同模板][修改][显示问题]

release_toaliyun_real
gongbiao 7 anni fa
parent
commit
0ecba0d877
1 ha cambiato i file con 121 aggiunte e 33 eliminazioni
  1. +121
    -33
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 121
- 33
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Vedi File

@@ -1420,11 +1420,39 @@ public class WxRentContractServiceImpl implements WxRentContractService {

public Map<String, Object> getRentAndPropertyInfo(Long id) {
logger.info("获取租赁物业合同数据>>>>>>id:" + id);
WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(id);
WxShop record = new WxShop();
record.setId(wxRentContract.getShopId());
Map<String, Object> wxShop = wxShopMapper.findListMap(record).get(0);
Map<String, Object> result = new HashMap<>();
WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(id);
if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) {
JSONArray jsonArray = JSONArray.parseArray(wxRentContract.getRentInfo());
StringBuffer shopNumberStr = new StringBuffer();
StringBuffer floorNameStr = new StringBuffer();
StringBuffer buildingNameStr = new StringBuffer();
StringBuffer buildAreaStr = new StringBuffer();
StringBuffer operationAreaStr = new StringBuffer();
for (int i = 0, size = jsonArray.size(); i < size; i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
shopNumberStr.append("[").append(jsonObject.getString("shopNumber")).append("]");
floorNameStr.append("[").append(jsonObject.getString("floor")).append("]");
buildingNameStr.append("[").append(jsonObject.getString("building")).append("]");
buildAreaStr.append("[").append(jsonObject.getString("buildArea")).append("]");
operationAreaStr.append("[").append(jsonObject.getString("operationArea")).append("]");
}
result.put("shopNumber", shopNumberStr);
result.put("floorName", floorNameStr);
result.put("buildingName", buildingNameStr);
result.put("buildArea", buildAreaStr);
result.put("operationArea", operationAreaStr);
} else {
WxShop record = new WxShop();
record.setId(wxRentContract.getShopId());
Map<String, Object> wxShop = wxShopMapper.findListMap(record).get(0);
//店铺信息
result.put("shopNumber", wxShop.get("shopNumber"));
result.put("floorName", wxShop.get("floor"));
result.put("buildingName", wxShop.get("building"));
result.put("buildArea", wxShop.get("buildArea"));
result.put("operationArea", wxShop.get("operationArea"));
}
//MALL信息
WxMall wxMall = new WxMall();
wxMall.setTenantId(wxRentContract.getTenantId());
@@ -1435,12 +1463,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
//经营业态
WxBusiness wxBusiness = wxBusinessMapper.selectByPrimaryKey(wxRentContract.getBusinessId());
result.put("business", wxBusiness.getTitle());
//店铺信息
result.put("shopNumber", wxShop.get("shopNumber"));
result.put("floorName", wxShop.get("floor"));
result.put("buildingName", wxShop.get("building"));
result.put("buildArea", wxShop.get("buildArea"));
result.put("operationArea", wxShop.get("operationArea"));

//商户信息
WxMerchant merchant = wxMerchantService.getById(wxRentContract.getMerchantId());
if (merchant != null) {
@@ -1524,15 +1547,20 @@ public class WxRentContractServiceImpl implements WxRentContractService {
int index = 10 - paycount;
int count = paycount - 1;
BigDecimal rentPrice = new BigDecimal(priceRent);
if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA.getCode())) {
areaWay(wxRentContract, result, lease, 0, extralease, extracount, paycount, index, count, rentPrice);
} else {
if (!wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
//保底
double revenue = new BigDecimal(wxRentContract.getRevenue())
.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
result.put("revenue", revenue);
result.put("revenueUpper", digitUppercase(revenue));
ratioWay(wxRentContract, result, lease, 0, extralease, extracount, paycount, index, count, rentPrice);
if (wxRentContract.getRevenue() != null) {
double revenue = new BigDecimal(wxRentContract.getRevenue())
.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
result.put("revenue", revenue);
result.put("revenueUpper", digitUppercase(revenue));
} else {
result.put("revenue", 0);
result.put("revenueUpper", digitUppercase(0));
}
areaWay(wxRentContract, result, lease, extralease, extracount, paycount, index, count, rentPrice);
} else {
ratioWay(wxRentContract, result, lease, extralease, extracount, paycount, index, count, rentPrice);
}
//物业合同信息
WxPropertyContract propertyContract = new WxPropertyContract();
@@ -1625,9 +1653,10 @@ 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;
public void ratioWay(WxRentContract wxRentContract, Map<String, Object> result, Integer lease, int extralease, int extracount, int paycount, int index, int count, BigDecimal rentPrice) {
String adjustRatio = wxRentContract.getAdjustRatio();
List<Integer> integers = JSONArray.parseArray(adjustRatio, Integer.class);
integers.add(0, 0);
//常规租期
for (int i = 0; i <= count; i++) {
//开始时间
@@ -1651,7 +1680,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
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, wxRentContract.getAdjustRatio());
String ratio = new BigDecimal(integers.get(i)).divide(new BigDecimal(100)).toPlainString();
result.put("adjustRatio" + i, ratio);
result.put("adjustPeriod" + i, wxRentContract.getAdjustPeriod());
result.put("payRatio" + i, wxRentContract.getPayRatio());

@@ -1685,7 +1715,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {

}
//无数据租期
for (int i = paycount; i <= index; i++) {
for (int i = paycount; i <= 10; i++) {
result.put("rentalStartDate" + i, "/");
result.put("rentalStartDateYear" + i, "/");
result.put("rentalStartDateMonth" + i, "/");
@@ -1700,7 +1730,50 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}
}

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) {
public void areaWay(WxRentContract wxRentContract, Map<String, Object> result, Integer lease, int extralease, int extracount, int paycount, int index, int count, BigDecimal rentPrice) {

int[] priceArrs = new int[]{};
List<String> adjustRatioList = new ArrayList<>();
adjustRatioList.add(0, "0");
if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) {
String rentInfo = wxRentContract.getRentInfo();
JSONArray objects = JSONArray.parseArray(rentInfo);
JSONObject jsonObject = objects.getJSONObject(0);
JSONArray adjustRatio = jsonObject.getJSONArray("adjustRatio");
for (int i = 0, size = adjustRatio.size(); i < size; i++) {
StringBuffer adjustRatioStr = new StringBuffer();
for (int j = 0, shopSize = objects.size(); j < shopSize; j++) {
JSONObject shopObject = objects.getJSONObject(j);
JSONArray adjustRatioArr = shopObject.getJSONArray("adjustRatio");
String shopNumber = shopObject.getString("shopNumber");
double ratioStr = new BigDecimal(adjustRatioArr.getIntValue(i)).divide(new BigDecimal(100)).doubleValue();
adjustRatioStr.append(shopNumber).append("[").append(ratioStr).append("]");
}
adjustRatioList.add(adjustRatioStr.toString());
}
List<int[]> priceList = computePrice(rentInfo);
int size = priceList.size();
priceArrs = new int[size];
for (int i = 0; i < size; i++) {
int[] priceInt = priceList.get(i);
int sum = 0;
for (int p : priceInt) {
sum += p;
}
priceArrs[i] = sum;
}
} else {
String adjustRatio = wxRentContract.getAdjustRatio();
List<Integer> integers = JSONArray.parseArray(adjustRatio, Integer.class);
for (int i = 0, size = integers.size(); i < size; i++) {
double ratioStr = new BigDecimal(integers.get(i)).divide(new BigDecimal(100)).doubleValue();
adjustRatioList.add(String.valueOf(ratioStr));
}
}
String payRatioStr = "0";
if (wxRentContract.getPayRatio() != null) {
payRatioStr = new BigDecimal(wxRentContract.getPayRatio()).divide(new BigDecimal(100)).toPlainString();
}
//常规租期
for (int i = 0; i <= count; i++) {
//开始时间
@@ -1724,13 +1797,21 @@ public class WxRentContractServiceImpl implements WxRentContractService {
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))

if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) {
rentPrice = new BigDecimal(priceArrs[i]).divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN);
result.put("priceRentUpper" + i, digitUppercase(rentPrice.doubleValue()));
result.put("priceRent" + i, rentPrice.doubleValue());
result.put("adjustRatio" + i, adjustRatioList.get(i));
} else {
rentPrice = rentPrice.multiply(new BigDecimal(adjustRatioList.get(i)))
.add(rentPrice).setScale(2, RoundingMode.HALF_EVEN);
result.put("priceRentUpper" + i, digitUppercase(rentPrice.doubleValue()));
result.put("priceRent" + i, rentPrice.doubleValue());
result.put("adjustRatio" + i, adjustRatioList.get(i));
}
result.put("adjustRatio" + i, wxRentContract.getAdjustRatio());
result.put("payRatio" + i, payRatioStr);
result.put("adjustPeriod" + i, wxRentContract.getAdjustPeriod());
}
if (extracount > 0) {
//额外租期
@@ -1756,15 +1837,20 @@ public class WxRentContractServiceImpl implements WxRentContractService {
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, rentPrice.doubleValue());
result.put("adjustRatio" + count, wxRentContract.getAdjustRatio());
if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) {
rentPrice = new BigDecimal(priceArrs[count]).divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN);
result.put("priceRentUpper" + count, digitUppercase(rentPrice.doubleValue()));
result.put("priceRent" + count, rentPrice.doubleValue());
} else {
rentPrice = rentPrice.multiply(new BigDecimal(adjustRatioList.get(count)))
.add(rentPrice).setScale(2, RoundingMode.HALF_EVEN);
result.put("priceRentUpper" + count, digitUppercase(rentPrice.doubleValue()));
result.put("priceRent" + count, rentPrice.doubleValue());
}

}
//无数据租期
for (int i = paycount; i <= index; i++) {
for (int i = paycount; i <= 10; i++) {
result.put("rentalStartDate" + i, "/");
result.put("rentalStartDateYear" + i, "/");
result.put("rentalStartDateMonth" + i, "/");
@@ -1776,6 +1862,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
result.put("priceRentUpper" + i, "/");
result.put("priceRent" + i, "/");
result.put("adjustRatio" + i, "/");
result.put("payRatio" + i, "/");
result.put("adjustPeriod" + i, "/");
}
}



Caricamento…
Annulla
Salva