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`
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);
}
}
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;
}

@@ -1438,18 +1450,24 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}
JSONObject otherRentPriceInfo = rentInfoObject.getJSONObject("otherRentPriceInfo");
if(otherRentPriceInfo != null ){
//场地费
String siteMoney1 = otherRentPriceInfo.getString("siteMoney");
if(StringUtils.isNotBlank(siteMoney1)){
b = new BigDecimal(siteMoney1);
}
//设备费
String facilityMoney1 = otherRentPriceInfo.getString("facilityMoney");
if(StringUtils.isNotBlank(facilityMoney1)){
c = new BigDecimal(facilityMoney1);
}
//商业管理费
String administratorMoney1 = otherRentPriceInfo.getString("administratorMoney");
if(StringUtils.isNotBlank(administratorMoney1)){
d = new BigDecimal(administratorMoney1);
}
//营业管理费
String managementMoney1 = otherRentPriceInfo.getString("managementMoney");
if(StringUtils.isNotBlank(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)
.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)
.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)
.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)
.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)
.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{
@@ -1478,6 +1496,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
if(StringUtils.isNotBlank(otherRentPriceInfo1)){

JSONObject jsonObject = JSONObject.parseObject(otherRentPriceInfo1);
String siteMoney1 = jsonObject.getString("siteMoney");
if(StringUtils.isNotBlank(siteMoney1)){
b = new BigDecimal(siteMoney1);
@@ -1490,16 +1509,17 @@ public class WxRentContractServiceImpl implements WxRentContractService {
if(StringUtils.isNotBlank(administratorMoney1)){
d = new BigDecimal(administratorMoney1);
}
String managementMoney1 = jsonObject.getString("managementMoney");
if(StringUtils.isNotBlank(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{
rentPrice = contractNeedPay;


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