zhengfangyuan 3 лет назад
Родитель
Сommit
9b85b0286f
2 измененных файлов: 32 добавлений и 10 удалений
  1. +2
    -0
      mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql
  2. +30
    -10
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 2
- 0
mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql Просмотреть файл

@@ -12,3 +12,5 @@ ADD COLUMN `revenue_ratio_set` JSON COMMENT '联营扣点调整比率(仅联


ALTER TABLE `mallink`.`wx_rent_contract` ALTER TABLE `mallink`.`wx_rent_contract`
ADD COLUMN `end_contract_time` datetime COMMENT '终止时间'; ADD COLUMN `end_contract_time` datetime COMMENT '终止时间';



+ 30
- 10
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Просмотреть файл

@@ -1077,6 +1077,18 @@ public class WxRentContractServiceImpl implements WxRentContractService {
priceList.add(priceArrs); priceList.add(priceArrs);
} }
} }
if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())) {
for (int i = 0; i < adjustRatioSize; i++) {
long[] priceArrs = new long[arraySize];
for (int j = 0; j < arraySize; j++) {
rentInfoObject = rentInfoArray.getJSONObject(j);
adjustRatio = rentInfoObject.getJSONArray("adjustRatio");
BigDecimal price = new BigDecimal(priceList.get(i)[j]).multiply(new BigDecimal(adjustRatio.getString(i)).divide(new BigDecimal(100)));
priceArrs[j] = price.setScale(0, RoundingMode.HALF_EVEN).longValue();
}
priceList.add(priceArrs);
}
}
return priceList; return priceList;
} }


@@ -1438,18 +1450,24 @@ public class WxRentContractServiceImpl implements WxRentContractService {
} }
JSONObject otherRentPriceInfo = rentInfoObject.getJSONObject("otherRentPriceInfo"); JSONObject otherRentPriceInfo = rentInfoObject.getJSONObject("otherRentPriceInfo");
if(otherRentPriceInfo != null ){ if(otherRentPriceInfo != null ){
//场地费
String siteMoney1 = otherRentPriceInfo.getString("siteMoney"); String siteMoney1 = otherRentPriceInfo.getString("siteMoney");
if(StringUtils.isNotBlank(siteMoney1)){ if(StringUtils.isNotBlank(siteMoney1)){
b = new BigDecimal(siteMoney1); b = new BigDecimal(siteMoney1);
} }
//设备费
String facilityMoney1 = otherRentPriceInfo.getString("facilityMoney"); String facilityMoney1 = otherRentPriceInfo.getString("facilityMoney");
if(StringUtils.isNotBlank(facilityMoney1)){ if(StringUtils.isNotBlank(facilityMoney1)){
c = new BigDecimal(facilityMoney1); c = new BigDecimal(facilityMoney1);
} }
//商业管理费
String administratorMoney1 = otherRentPriceInfo.getString("administratorMoney"); String administratorMoney1 = otherRentPriceInfo.getString("administratorMoney");
if(StringUtils.isNotBlank(administratorMoney1)){ if(StringUtils.isNotBlank(administratorMoney1)){
d = new BigDecimal(administratorMoney1); d = new BigDecimal(administratorMoney1);
} }
//营业管理费
String managementMoney1 = otherRentPriceInfo.getString("managementMoney"); String managementMoney1 = otherRentPriceInfo.getString("managementMoney");
if(StringUtils.isNotBlank(managementMoney1)){ if(StringUtils.isNotBlank(managementMoney1)){
e = new BigDecimal(managementMoney1); e = new BigDecimal(managementMoney1);
@@ -1457,15 +1475,15 @@ public class WxRentContractServiceImpl implements WxRentContractService {
} }


rentPrice += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP) rentPrice += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP)
.multiply(a).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
.multiply(a).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
siteMoney += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP) siteMoney += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP)
.multiply(b).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
.multiply(b).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
facilityMoney += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP) facilityMoney += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP)
.multiply(c).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
.multiply(c).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
administratorMoney += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP) administratorMoney += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP)
.multiply(d).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
.multiply(d).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
managementMoney += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP) managementMoney += new BigDecimal(contractNeedPay).multiply(new BigDecimal(priceList[i])).divide(new BigDecimal(sum),2,BigDecimal.ROUND_HALF_UP)
.multiply(e).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
.multiply(e).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
} }
}else{ }else{
@@ -1478,6 +1496,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
if(StringUtils.isNotBlank(otherRentPriceInfo1)){ if(StringUtils.isNotBlank(otherRentPriceInfo1)){


JSONObject jsonObject = JSONObject.parseObject(otherRentPriceInfo1); JSONObject jsonObject = JSONObject.parseObject(otherRentPriceInfo1);
String siteMoney1 = jsonObject.getString("siteMoney"); String siteMoney1 = jsonObject.getString("siteMoney");
if(StringUtils.isNotBlank(siteMoney1)){ if(StringUtils.isNotBlank(siteMoney1)){
b = new BigDecimal(siteMoney1); b = new BigDecimal(siteMoney1);
@@ -1490,16 +1509,17 @@ public class WxRentContractServiceImpl implements WxRentContractService {
if(StringUtils.isNotBlank(administratorMoney1)){ if(StringUtils.isNotBlank(administratorMoney1)){
d = new BigDecimal(administratorMoney1); d = new BigDecimal(administratorMoney1);
} }
String managementMoney1 = jsonObject.getString("managementMoney"); String managementMoney1 = jsonObject.getString("managementMoney");
if(StringUtils.isNotBlank(managementMoney1)){ if(StringUtils.isNotBlank(managementMoney1)){
e = new BigDecimal(managementMoney1); e = new BigDecimal(managementMoney1);
} }
} }
rentPrice = new BigDecimal(contractNeedPay).multiply(a).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
siteMoney = new BigDecimal(contractNeedPay).multiply(b).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
facilityMoney = new BigDecimal(contractNeedPay).multiply(c).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
administratorMoney = new BigDecimal(contractNeedPay).multiply(d).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
managementMoney = new BigDecimal(contractNeedPay).multiply(e).divide(a.add(b).add(c).add(d),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
rentPrice = new BigDecimal(contractNeedPay).multiply(a).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
siteMoney = new BigDecimal(contractNeedPay).multiply(b).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
facilityMoney = new BigDecimal(contractNeedPay).multiply(c).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
administratorMoney = new BigDecimal(contractNeedPay).multiply(d).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
managementMoney = new BigDecimal(contractNeedPay).multiply(e).divide(a.add(b).add(c).add(d).add(e),2,BigDecimal.ROUND_HALF_UP).setScale(0,BigDecimal.ROUND_HALF_UP).longValue();
} }
}else{ }else{
rentPrice = contractNeedPay; rentPrice = contractNeedPay;


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