winter 2 лет назад
Родитель
Сommit
fdd04458aa
5 измененных файлов: 349 добавлений и 283 удалений
  1. +104
    -235
      mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java
  2. +196
    -0
      mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java
  3. +40
    -39
      mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java
  4. +5
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java
  5. +4
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 104
- 235
mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java Просмотреть файл

@@ -1,6 +1,7 @@
package com.iformall.controller.rent;

import com.alibaba.fastjson.JSONArray;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.Result;
@@ -19,10 +20,13 @@ import com.iformall.domain.po.WxShop;
import com.iformall.domain.po.WxUserDataRule;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxBillAll;
import com.iformall.domain.vo.WxBillAllVo;
import com.iformall.domain.vo.WxBillExcelTemplate;
import com.iformall.domain.vo.WxBillSum;
import com.iformall.domain.vo.WxMerchantBillVo;
import com.iformall.domain.vo.WxMerchantMicroPayVo;
import com.iformall.domain.vo.WxShopVo;
import com.iformall.service.ExcelService;
import com.iformall.service.WxBillAllService;
import com.iformall.service.WxBillDailyService;
import com.iformall.service.WxBillDepositService;
@@ -35,6 +39,7 @@ import com.iformall.service.WxBillRentService;
import com.iformall.service.WxMerchantService;
import com.iformall.service.WxPayAccountBillService;
import com.iformall.service.WxShopService;
import com.iformall.service.helper.WxBillAllHelper;

import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -65,42 +70,19 @@ public class WxBillAllController extends BaseController {
@Autowired
private WxBillAllService wxBillAllService;
private Logger logger = LoggerFactory.getLogger(WxBillAllController.class);

@Autowired
private WxMerchantService wxMerchantService;
@Autowired
private WxBillRentService wxBillRentService;
@Autowired
private WxBillRentManageService wxBillRentManageService;
@Autowired
private WxBillDepositService wxBillRentDepositService;
@Autowired
private WxBillPropertyService wxBillPropertyService;
@Autowired
private WxBillPropertyDepositService wxBillPropertyDepositService;
@Autowired
private WxBillDailyService wxBillDailyService;
@Autowired
private WxBillOtherService wxBillOtherService;
WxPayAccountBillService wxPayAccountBillService;
@Autowired
private WxBillOtherDepositService wxBillOtherDepositService;
WxBillAllHelper billAllHelper;
@Autowired
private WxShopService wxShopService;
private WxMerchantService wxMerchantService;

private Logger logger = LoggerFactory.getLogger(WxBillAllController.class);

@Autowired
WxPayAccountBillService wxPayAccountBillService;
ExcelService excelService;
@GetMapping("merchantBillList")
@ApiImplicitParams({
@@ -113,175 +95,68 @@ public class WxBillAllController extends BaseController {
wxMerchant.setFloorForRule(dataRule.getFloorIds());
wxMerchant.setBusinessForRule(dataRule.getBussinessIds());
}
Date starttime = wxMerchant.getStarttime();
Date enttime = wxMerchant.getEndtime();
wxMerchant.setStarttime(null);
wxMerchant.setEndtime(null);
PageInfo<WxMerchant> merchantPage = wxMerchantService.listAsPage(wxMerchant, pageNum, pageSize);
if (null != merchantPage && null != merchantPage.getList() && merchantPage.getList().size() > 0 ) {
List<WxMerchantBillVo> retList = new ArrayList<WxMerchantBillVo>();
for (int i = 0 ; i < merchantPage.getList().size(); i ++) {
WxMerchantBillVo vo = new WxMerchantBillVo();
WxMerchant m = merchantPage.getList().get(i);
vo.setMerchantId(m.getId());
vo.setMerchantName(m.getName());
vo.setShopNumber(getMerchantShopNumber(m));
WxBillSum rentSum = getBillRentSum(wxMerchant,starttime, enttime);
WxBillSum rentManageSum = getBillRentManage(wxMerchant, starttime, enttime);
WxBillSum rentDepositSum = getBillDeposit(wxMerchant, starttime, enttime);
WxBillSum propertySum = getBillProperty(wxMerchant, starttime, enttime);
WxBillSum propertyDepositSum = getBillPropertyDeposit(wxMerchant, starttime, enttime);
WxBillSum dailySum = getBillDaily(wxMerchant, starttime, enttime);
WxBillSum otherSum = getBillOther(wxMerchant, starttime, enttime);
WxBillSum otherDepositSum = getBillOtherDeposit(wxMerchant, starttime, enttime);
vo.setNeedPay(calcuteSum(rentSum.getNeedPay(),rentManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(),
propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay()));
vo.setPaid(calcuteSum(rentSum.getPaid(),rentManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(),
propertyDepositSum.getPaid(),dailySum.getPaid(),otherSum.getPaid(),otherDepositSum.getPaid()));
vo.setOwe(calcuteSum(rentSum.getOwe(),rentManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(),
propertyDepositSum.getOwe(),dailySum.getOwe(),otherSum.getOwe(),otherDepositSum.getOwe()));
retList.add(vo);
}
return new ResultData(retList);
}
return new ResultData();
return new ResultData(getVoPage(wxMerchant, pageNum, pageSize));
}
private WxBillSum getBillRentSum(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillRent br = new WxBillRent();
br.updateTenantInfo(tenantEntity);
br.setStarttime(starttime);
br.setEndtime(enttime);
WxBillSum rentSum = wxBillRentService.getBillMonthSum(br);
if (null == rentSum) {
rentSum = new WxBillSum();
}
rentSum.setBillName("租赁费用");
return rentSum;
private PageInfo<WxMerchantBillVo> getVoPage(WxMerchant wxMerchant,Integer pageNum, Integer pageSize) {
Date starttime = wxMerchant.getStarttime();
Date enttime = wxMerchant.getEndtime();
wxMerchant.setStarttime(null);
wxMerchant.setEndtime(null);
PageInfo<WxMerchant> merchantPage = wxMerchantService.listAsPage(wxMerchant, pageNum, pageSize);
if (null != merchantPage && null != merchantPage.getList() && merchantPage.getList().size() > 0 ) {
List<WxMerchantBillVo> retList = new ArrayList<WxMerchantBillVo>();
for (int i = 0 ; i < merchantPage.getList().size(); i ++) {
WxMerchantBillVo vo = new WxMerchantBillVo();
WxMerchant m = merchantPage.getList().get(i);
vo.setMerchantId(m.getId());
vo.setMerchantName(m.getName());
vo.setShopNumber(billAllHelper.getMerchantShopNumber(m));
WxBillSum rentSum = billAllHelper.getBillRentSum(wxMerchant,starttime, enttime);
WxBillSum rentManageSum = billAllHelper.getBillRentManage(wxMerchant, starttime, enttime);
WxBillSum rentDepositSum = billAllHelper.getBillDeposit(wxMerchant, starttime, enttime);
WxBillSum propertySum = billAllHelper.getBillProperty(wxMerchant, starttime, enttime);
WxBillSum propertyDepositSum = billAllHelper.getBillPropertyDeposit(wxMerchant, starttime, enttime);
WxBillSum dailySum = billAllHelper.getBillDaily(wxMerchant, starttime, enttime);
WxBillSum otherSum = billAllHelper.getBillOther(wxMerchant, starttime, enttime);
WxBillSum otherDepositSum = billAllHelper.getBillOtherDeposit(wxMerchant, starttime, enttime);
vo.setNeedPay(billAllHelper.calcuteSum(rentSum.getNeedPay(),rentManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(),
propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay()));
vo.setPaid(billAllHelper.calcuteSum(rentSum.getPaid(),rentManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(),
propertyDepositSum.getPaid(),dailySum.getPaid(),otherSum.getPaid(),otherDepositSum.getPaid()));
vo.setOwe(billAllHelper.calcuteSum(rentSum.getOwe(),rentManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(),
propertyDepositSum.getOwe(),dailySum.getOwe(),otherSum.getOwe(),otherDepositSum.getOwe()));
retList.add(vo);
}
PageHelper.startPage(pageNum, pageSize);
return new PageInfo<WxMerchantBillVo>(retList);
}
PageHelper.startPage(pageNum, pageSize);
return new PageInfo<WxMerchantBillVo>(new ArrayList<WxMerchantBillVo>());
}
private WxBillSum getBillRentManage(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillRentManage brm = new WxBillRentManage();
brm.updateTenantInfo(tenantEntity);
brm.setStarttime(starttime);
brm.setEndtime(enttime);
WxBillSum rentManageSum = wxBillRentManageService.getBillMonthSum(brm);
if (null == rentManageSum) {
rentManageSum = new WxBillSum();
}
rentManageSum.setBillName("租赁营业&商业管理费费用");
return rentManageSum;
}
private WxBillSum getBillDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillDeposit bd = new WxBillDeposit();
bd.updateTenantInfo(tenantEntity);
bd.setStarttime(starttime);
bd.setEndtime(enttime);
WxBillSum rentDepositSum = wxBillRentDepositService.getBillMonthSum(bd);
if (null == rentDepositSum) {
rentDepositSum = new WxBillSum();
}
rentDepositSum.setBillName("租赁押金费用");
return rentDepositSum;
}
private WxBillSum getBillProperty(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillProperty bp = new WxBillProperty();
bp.updateTenantInfo(tenantEntity);
bp.setStarttime(starttime);
bp.setEndtime(enttime);
WxBillSum propertySum = wxBillPropertyService.getBillMonthSum(bp);
if (null == propertySum) {
propertySum = new WxBillSum();
}
propertySum.setBillName("物业费用");
return propertySum;
}
private WxBillSum getBillPropertyDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillPropertyDeposit pd = new WxBillPropertyDeposit();
pd.updateTenantInfo(tenantEntity);
pd.setStarttime(starttime);
pd.setEndtime(enttime);
WxBillSum propertyDepositSum = wxBillPropertyDepositService.getBillMonthSum(pd);
if (null == propertyDepositSum) {
propertyDepositSum = new WxBillSum();
}
propertyDepositSum.setBillName("物业押金费用");
return propertyDepositSum;
}
private WxBillSum getBillDaily(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillDaily bdd = new WxBillDaily();
bdd.updateTenantInfo(tenantEntity);
bdd.setStarttime(starttime);
bdd.setEndtime(enttime);
WxBillSum dailySum = wxBillDailyService.getBillMonthSum(bdd);
if (null == dailySum) {
dailySum = new WxBillSum();
}
dailySum.setBillName("日藏水电空调费用");
return dailySum;
}
private WxBillSum getBillOther(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillOther bo = new WxBillOther();
bo.updateTenantInfo(tenantEntity);
bo.setStarttime(starttime);
bo.setEndtime(enttime);
WxBillSum otherSum = wxBillOtherService.getBillMonthSum(bo);
if (null == otherSum) {
otherSum = new WxBillSum();
}
otherSum.setBillName("其他费用");
return otherSum;
}
private WxBillSum getBillOtherDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillOtherDeposit bod = new WxBillOtherDeposit();
bod.updateTenantInfo(tenantEntity);
bod.setStarttime(starttime);
bod.setEndtime(enttime);
WxBillSum otherDepositSum = wxBillOtherDepositService.getBillMonthSum(bod);
if (null == otherDepositSum) {
otherDepositSum = new WxBillSum();
}
otherDepositSum.setBillName("其他押金费用");
return otherDepositSum;
}
private String calcuteSum(String... money) {
if (null != money) {
BigDecimal total = new BigDecimal(0);
for (int i = 0 ; i < money.length ; i++) {
String _m = money[i];
if (StringUtils.isBlank(_m)) {
_m = "0";
}
total.add(new BigDecimal(_m));
}
return total.setScale(2,RoundingMode.HALF_UP).toPlainString();
}
return "0";
}
private String getMerchantShopNumber(WxMerchant merchant) {
List<WxShopVo> shopList = wxShopService.findMerchantShopVoList(merchant, merchant.getId());
if (null != shopList && shopList.size() > 0 ) {
StringBuffer sb = new StringBuffer("");
for (int i = 0 ; i < shopList.size() ; i ++) {
WxShopVo v = shopList.get(i);
sb.append(v.getShopNumber()).append(",");
}
return sb.toString();
}
return null;
@GetMapping("exportMerchantBillList")
public void exportBill(@ModelAttribute WxMerchant wxMerchant, HttpServletRequest request, HttpServletResponse response) {
wxMerchant.updateTenantInfo(getTenantInfo());
WxUserDataRule dataRule = this.getCurrentDataFloors();
if (null != dataRule) {
wxMerchant.setFloorForRule(dataRule.getFloorIds());
wxMerchant.setBusinessForRule(dataRule.getBussinessIds());
}
PageInfo<WxMerchantBillVo> page = getVoPage(wxMerchant, 1, 10000);
excelService.exportExcel(page.getList(), null, "商户账单总览数据", WxMerchantBillVo.class, "商户账单总览数据.xlsx", response, false);
}
/**
* 商户计费详情
* @param wxMerchant
* @return
*/
@GetMapping("oneMerchantBillList")
public ResultData oneMerchantBillList(@ModelAttribute WxMerchant wxMerchant) {
if (null == wxMerchant.getId()) {
@@ -299,22 +174,22 @@ public class WxBillAllController extends BaseController {
WxMerchantBillVo vo = new WxMerchantBillVo();
vo.setMerchantId(m.getId());
vo.setMerchantName(m.getName());
vo.setShopNumber(getMerchantShopNumber(m));
vo.setShopNumber(billAllHelper.getMerchantShopNumber(m));
WxBillSum rentSum = getBillRentSum(wxMerchant,starttime, enttime);
WxBillSum rentManageSum = getBillRentManage(wxMerchant, starttime, enttime);
WxBillSum rentDepositSum = getBillDeposit(wxMerchant, starttime, enttime);
WxBillSum propertySum = getBillProperty(wxMerchant, starttime, enttime);
WxBillSum propertyDepositSum = getBillPropertyDeposit(wxMerchant, starttime, enttime);
WxBillSum dailySum = getBillDaily(wxMerchant, starttime, enttime);
WxBillSum otherSum = getBillOther(wxMerchant, starttime, enttime);
WxBillSum otherDepositSum = getBillOtherDeposit(wxMerchant, starttime, enttime);
WxBillSum rentSum = billAllHelper.getBillRentSum(wxMerchant,starttime, enttime);
WxBillSum rentManageSum = billAllHelper.getBillRentManage(wxMerchant, starttime, enttime);
WxBillSum rentDepositSum = billAllHelper.getBillDeposit(wxMerchant, starttime, enttime);
WxBillSum propertySum = billAllHelper.getBillProperty(wxMerchant, starttime, enttime);
WxBillSum propertyDepositSum = billAllHelper.getBillPropertyDeposit(wxMerchant, starttime, enttime);
WxBillSum dailySum = billAllHelper.getBillDaily(wxMerchant, starttime, enttime);
WxBillSum otherSum = billAllHelper.getBillOther(wxMerchant, starttime, enttime);
WxBillSum otherDepositSum = billAllHelper.getBillOtherDeposit(wxMerchant, starttime, enttime);
vo.setNeedPay(calcuteSum(rentSum.getNeedPay(),rentManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(),
vo.setNeedPay(billAllHelper.calcuteSum(rentSum.getNeedPay(),rentManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(),
propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay()));
vo.setPaid(calcuteSum(rentSum.getPaid(),rentManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(),
vo.setPaid(billAllHelper.calcuteSum(rentSum.getPaid(),rentManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(),
propertyDepositSum.getPaid(),dailySum.getPaid(),otherSum.getPaid(),otherDepositSum.getPaid()));
vo.setOwe(calcuteSum(rentSum.getOwe(),rentManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(),
vo.setOwe(billAllHelper.calcuteSum(rentSum.getOwe(),rentManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(),
propertyDepositSum.getOwe(),dailySum.getOwe(),otherSum.getOwe(),otherDepositSum.getOwe()));
List<WxBillSum> sumlist = new ArrayList<>();
@@ -331,6 +206,32 @@ public class WxBillAllController extends BaseController {
return new ResultData(vo);
}
/**
* 欠缴商户列表
* @param wxBillAll
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("oweMerchantlist")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
@SystemControllerLog(description = "费用收缴数据-欠缴商户列表")
public ResultData oweMerchantlist(@ModelAttribute WxBillAll wxBillAll, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxBillAllController::oweMerchantlist");
if (null == wxBillAll) {
wxBillAll = new WxBillAll();
}
//默认查当月第一天到今天
if(StringUtils.isNotBlank(wxBillAll.getEndtime())){
wxBillAll.setEndtime(wxBillAll.getEndtime()+" 23:59:59");
}
wxBillAll.updateTenantInfo(getTenantInfo());
Map<String, Object> result = wxBillAllService.getOweBillAsPage(wxBillAll, pageNum, pageSize);
return new ResultData(result);
}

@GetMapping("oweBillCount")
@@ -400,12 +301,6 @@ public class WxBillAllController extends BaseController {
return new ResultData(wxBillAllService.allDepositList(wxBillAll));
}

@GetMapping("exportBill")
@SystemControllerLog(description = "账单总览-导出")
public void exportBill(@ModelAttribute WxBillAll wxBillAll, HttpServletRequest request, HttpServletResponse response) {
wxBillAll.updateTenantInfo(getTenantInfo());
wxBillAllService.exportBill(request, response, wxBillAll);
}

// @GetMapping("getBillInfo")
// @SystemControllerLog(description = "账单总览-获取账单信息")
@@ -416,32 +311,6 @@ public class WxBillAllController extends BaseController {
// }


/**
* 欠缴商户列表
* @param wxBillAll
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("oweMerchantlist")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
@SystemControllerLog(description = "费用收缴数据-欠缴商户列表")
public ResultData oweMerchantlist(@ModelAttribute WxBillAll wxBillAll, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxBillAllController::oweMerchantlist");
if (null == wxBillAll) {
wxBillAll = new WxBillAll();
}
//默认查当月第一天到今天
if(StringUtils.isNotBlank(wxBillAll.getEndtime())){
wxBillAll.setEndtime(wxBillAll.getEndtime()+" 23:59:59");
}
wxBillAll.updateTenantInfo(getTenantInfo());
Map<String, Object> result = wxBillAllService.getOweBillAsPage(wxBillAll, pageNum, pageSize);
return new ResultData(result);
}

/**
* 应收、承付商户列表
* @param wxBillAll


+ 196
- 0
mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java Просмотреть файл

@@ -0,0 +1,196 @@
package com.iformall.service.helper;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.iformall.domain.po.WxBillDaily;
import com.iformall.domain.po.WxBillDeposit;
import com.iformall.domain.po.WxBillOther;
import com.iformall.domain.po.WxBillOtherDeposit;
import com.iformall.domain.po.WxBillProperty;
import com.iformall.domain.po.WxBillPropertyDeposit;
import com.iformall.domain.po.WxBillRent;
import com.iformall.domain.po.WxBillRentManage;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxBillSum;
import com.iformall.domain.vo.WxShopVo;
import com.iformall.service.WxBillDailyService;
import com.iformall.service.WxBillDepositService;
import com.iformall.service.WxBillOtherDepositService;
import com.iformall.service.WxBillOtherService;
import com.iformall.service.WxBillPropertyDepositService;
import com.iformall.service.WxBillPropertyService;
import com.iformall.service.WxBillRentManageService;
import com.iformall.service.WxBillRentService;
import com.iformall.service.WxMerchantService;
import com.iformall.service.WxShopService;

@Service
public class WxBillAllHelper {

@Autowired
private WxBillRentService wxBillRentService;
@Autowired
private WxBillRentManageService wxBillRentManageService;
@Autowired
private WxBillDepositService wxBillRentDepositService;
@Autowired
private WxBillPropertyService wxBillPropertyService;
@Autowired
private WxBillPropertyDepositService wxBillPropertyDepositService;
@Autowired
private WxBillDailyService wxBillDailyService;
@Autowired
private WxBillOtherService wxBillOtherService;
@Autowired
private WxBillOtherDepositService wxBillOtherDepositService;
@Autowired
private WxShopService wxShopService;
public WxBillSum getBillRentSum(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillRent br = new WxBillRent();
br.updateTenantInfo(tenantEntity);
br.setStarttime(starttime);
br.setEndtime(enttime);
WxBillSum rentSum = wxBillRentService.getBillMonthSum(br);
if (null == rentSum) {
rentSum = new WxBillSum();
}
rentSum.setBillName("租赁费用");
return rentSum;
}
public WxBillSum getBillRentManage(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillRentManage brm = new WxBillRentManage();
brm.updateTenantInfo(tenantEntity);
brm.setStarttime(starttime);
brm.setEndtime(enttime);
WxBillSum rentManageSum = wxBillRentManageService.getBillMonthSum(brm);
if (null == rentManageSum) {
rentManageSum = new WxBillSum();
}
rentManageSum.setBillName("租赁营业&商业管理费费用");
return rentManageSum;
}
public WxBillSum getBillDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillDeposit bd = new WxBillDeposit();
bd.updateTenantInfo(tenantEntity);
bd.setStarttime(starttime);
bd.setEndtime(enttime);
WxBillSum rentDepositSum = wxBillRentDepositService.getBillMonthSum(bd);
if (null == rentDepositSum) {
rentDepositSum = new WxBillSum();
}
rentDepositSum.setBillName("租赁押金费用");
return rentDepositSum;
}
public WxBillSum getBillProperty(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillProperty bp = new WxBillProperty();
bp.updateTenantInfo(tenantEntity);
bp.setStarttime(starttime);
bp.setEndtime(enttime);
WxBillSum propertySum = wxBillPropertyService.getBillMonthSum(bp);
if (null == propertySum) {
propertySum = new WxBillSum();
}
propertySum.setBillName("物业费用");
return propertySum;
}
public WxBillSum getBillPropertyDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillPropertyDeposit pd = new WxBillPropertyDeposit();
pd.updateTenantInfo(tenantEntity);
pd.setStarttime(starttime);
pd.setEndtime(enttime);
WxBillSum propertyDepositSum = wxBillPropertyDepositService.getBillMonthSum(pd);
if (null == propertyDepositSum) {
propertyDepositSum = new WxBillSum();
}
propertyDepositSum.setBillName("物业押金费用");
return propertyDepositSum;
}
public WxBillSum getBillDaily(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillDaily bdd = new WxBillDaily();
bdd.updateTenantInfo(tenantEntity);
bdd.setStarttime(starttime);
bdd.setEndtime(enttime);
WxBillSum dailySum = wxBillDailyService.getBillMonthSum(bdd);
if (null == dailySum) {
dailySum = new WxBillSum();
}
dailySum.setBillName("日藏水电空调费用");
return dailySum;
}
public WxBillSum getBillOther(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillOther bo = new WxBillOther();
bo.updateTenantInfo(tenantEntity);
bo.setStarttime(starttime);
bo.setEndtime(enttime);
WxBillSum otherSum = wxBillOtherService.getBillMonthSum(bo);
if (null == otherSum) {
otherSum = new WxBillSum();
}
otherSum.setBillName("其他费用");
return otherSum;
}
public WxBillSum getBillOtherDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) {
WxBillOtherDeposit bod = new WxBillOtherDeposit();
bod.updateTenantInfo(tenantEntity);
bod.setStarttime(starttime);
bod.setEndtime(enttime);
WxBillSum otherDepositSum = wxBillOtherDepositService.getBillMonthSum(bod);
if (null == otherDepositSum) {
otherDepositSum = new WxBillSum();
}
otherDepositSum.setBillName("其他押金费用");
return otherDepositSum;
}
public String calcuteSum(String... money) {
if (null != money) {
BigDecimal total = new BigDecimal(0);
for (int i = 0 ; i < money.length ; i++) {
String _m = money[i];
if (StringUtils.isBlank(_m)) {
_m = "0";
}
total.add(new BigDecimal(_m));
}
return total.setScale(2,RoundingMode.HALF_UP).toPlainString();
}
return "0";
}
public String getMerchantShopNumber(WxMerchant merchant) {
List<WxShopVo> shopList = wxShopService.findMerchantShopVoList(merchant, merchant.getId());
if (null != shopList && shopList.size() > 0 ) {
StringBuffer sb = new StringBuffer("");
for (int i = 0 ; i < shopList.size() ; i ++) {
WxShopVo v = shopList.get(i);
sb.append(v.getShopNumber()).append(",");
}
return sb.toString();
}
return null;
}
}

+ 40
- 39
mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java Просмотреть файл

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.iformall.domain.po.WxRentContract;
import com.iformall.enums.*;
import com.iformall.service.impl.WxRentContractServiceImpl;
import com.iformall.utils.Constant;
import com.iformall.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
@@ -62,10 +63,10 @@ public class WxRentContractHelper {
if (rentArea == null || rentArea.equalsIgnoreCase("NaN")) {
rentArea = "0";
}
priceArr[i] = new BigDecimal(priceStr).multiply(new BigDecimal(rentArea)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
priceArr[i] = new BigDecimal(priceStr).multiply(new BigDecimal(rentArea)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
List<String[]> priceList = computeRatioByShop(wxRentContract.getDecimalSize(),rentInfoArray,wxRentContract.getBussinessManagementFeeRatioWay(),priceArr,feeRatioField);
List<String[]> priceList = computeRatioByShop(Constant.default_long_decimal_size,rentInfoArray,wxRentContract.getBussinessManagementFeeRatioWay(),priceArr,feeRatioField);
if (null != priceList) {
return calcuteRatioByPart(priceList, feeRatioField);
}else {
@@ -79,8 +80,8 @@ public class WxRentContractHelper {
if (rentArea == null || rentArea.equalsIgnoreCase("NaN")) {
rentArea = "0";
}
String ratioFirstYearPrice = new BigDecimal(fee).multiply(new BigDecimal(rentArea)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
return calcuteRatioByJoin(wxRentContract.getDecimalSize(),ratioWay, ratio, ratioFirstYearPrice);
String ratioFirstYearPrice = new BigDecimal(fee).multiply(new BigDecimal(rentArea)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
return calcuteRatioByJoin(Constant.default_long_decimal_size,ratioWay, ratio, ratioFirstYearPrice);
}
}
return null;
@@ -115,7 +116,7 @@ public class WxRentContractHelper {
}
priceArr[i] = priceStr;
}
return computeRatioByShop(wxRentContract.getDecimalSize(),rentInfoArray,wxRentContract.getAdjustRatioWay(),priceArr,"adjustRatio");
return computeRatioByShop(Constant.default_long_decimal_size,rentInfoArray,wxRentContract.getAdjustRatioWay(),priceArr,"adjustRatio");
}
//计算每年租金基数(合铺录入)
@@ -145,28 +146,28 @@ public class WxRentContractHelper {
for (int i = 1; i < size; i++) {
BigDecimal divide = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000));
priceD = priceD.add(divide);
priceArrs[i] = priceD.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
priceArrs[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
} else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) {
for (int i = 1; i < size; i++) {
priceD = priceD.add(new BigDecimal(integers.get(i)));
priceArrs[i] = priceD.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
priceArrs[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
} else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){
for (int i = 1; i < size; i++) {
if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) {
priceArrs[i] = new BigDecimal(integers.get(i)).multiply(new BigDecimal(12))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
continue;
}
if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
priceArrs[i] = new BigDecimal(integers.get(i)).multiply(new BigDecimal(wxRentContract.getReceivePeriod()))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
continue;
}
}
priceArrs[i] = new BigDecimal(integers.get(i)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
priceArrs[i] = new BigDecimal(integers.get(i)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
}else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){
for (int i = 1; i < size; i++) {
@@ -179,16 +180,16 @@ public class WxRentContractHelper {
}
if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) {
priceArrs[i] = _p.multiply(new BigDecimal(12)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
priceArrs[i] = _p.multiply(new BigDecimal(12)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
continue;
}
if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
priceArrs[i] = _p.multiply(new BigDecimal(wxRentContract.getReceivePeriod()))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
continue;
}
}
priceArrs[i] = _p.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
priceArrs[i] = _p.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
}
@@ -210,7 +211,7 @@ public class WxRentContractHelper {
String[] revenuePriceArrs = new String[size];
if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) {
String _revenuePriceD = new BigDecimal(wxRentContract.getRevenue()).multiply(new BigDecimal(wxRentContract.getPayRatio()))
.divide(new BigDecimal(10000)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.divide(new BigDecimal(10000)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
revenuePriceArrs[0] = _revenuePriceD;
BigDecimal revenuePriceD = new BigDecimal(_revenuePriceD);
//联营扣点调整比率
@@ -230,31 +231,31 @@ public class WxRentContractHelper {
BigDecimal _p = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(revenueRationSets.get(i))).divide(new BigDecimal(10000));
revenuePriceD = revenuePriceD.add(_p);
}
revenuePriceArrs[i] = revenuePriceD.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
revenuePriceArrs[i] = revenuePriceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
} else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) {
for (int i = 1; i < size; i++) {
if (revenueYears.size() == size && revenueRationSets.size() == size) {
revenuePriceD = revenuePriceD.add(new BigDecimal(revenueRationSets.get(i)));
}
revenuePriceArrs[i] = revenuePriceD.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
revenuePriceArrs[i] = revenuePriceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
} else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){
for (int i = 1; i < size; i++) {
if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) {
revenuePriceArrs[i] = new BigDecimal(revenueRationSets.get(i)).multiply(new BigDecimal(12))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
continue;
}
if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
revenuePriceArrs[i] = new BigDecimal(revenueRationSets.get(i)).multiply(new BigDecimal(wxRentContract.getReceivePeriod()))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
continue;
}
}
revenuePriceArrs[i] = new BigDecimal(revenueRationSets.get(i))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
}else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){
for (int i = 1; i < size; i++) {
@@ -265,16 +266,16 @@ public class WxRentContractHelper {
if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) {
revenuePriceArrs[i] = _p.multiply(new BigDecimal(12))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
continue;
}
if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
revenuePriceArrs[i] = _p.multiply(new BigDecimal(wxRentContract.getReceivePeriod()))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
continue;
}
}
revenuePriceArrs[i] = _p.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
revenuePriceArrs[i] = _p.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
}
}
@@ -379,11 +380,11 @@ public class WxRentContractHelper {
//按日
if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){
BigDecimal priceD = new BigDecimal(price);
String needpayD = WxRentContractHelper.getNeedPay(wxRentContract.getDecimalSize(),new BigDecimal(0),priceD,startDate,endDate);
String needpayD = WxRentContractHelper.getNeedPay(Constant.default_long_decimal_size,new BigDecimal(0),priceD,startDate,endDate);
//取整
//needpay = new Double(needpayD).longValue();
//四舍五入
needpay = new BigDecimal(needpayD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(needpayD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}else{
BigDecimal priceD = new BigDecimal(price);
if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType())) {
@@ -393,12 +394,12 @@ public class WxRentContractHelper {
}
//年或者设置跳点率为年周期 除12
if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) {
priceD = new BigDecimal(price).divide(new BigDecimal(12),wxRentContract.getDecimalSize(),RoundingMode.HALF_UP).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP);
priceD = new BigDecimal(price).divide(new BigDecimal(12),Constant.default_long_decimal_size,RoundingMode.HALF_UP).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP);
}
}else{
//年 除12
if(EnumPriceUnit.Y.getCode().equals(wxRentContract.getPriceUnit())){
priceD = new BigDecimal(price).divide(new BigDecimal(12),wxRentContract.getDecimalSize(),RoundingMode.HALF_UP).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP);
priceD = new BigDecimal(price).divide(new BigDecimal(12),Constant.default_long_decimal_size,RoundingMode.HALF_UP).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP);
}
}

@@ -406,7 +407,7 @@ public class WxRentContractHelper {
//生成金额直接计算
if(!saveDb){
//needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,part)).longValue();
needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,part)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,part)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
return needpay;
}

@@ -421,22 +422,22 @@ public class WxRentContractHelper {
instance.add(Calendar.DATE, -1);
if(sd.format(instance.getTime()).equals(sd.format(endDate))){
int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))+"-01");
needpay = new BigDecimal(months).multiply(priceD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(months).multiply(priceD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}else{
//needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,false))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,false))
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
}else if(i == 0){//第一期
if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){
if(isFirstDay(startDate)){
int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01");
months++;
needpay = new BigDecimal(months).multiply(priceD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(months).multiply(priceD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}else{
//needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,false))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,false))
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
}else{
if(isFirstDay(startDate)){
@@ -444,11 +445,11 @@ public class WxRentContractHelper {
if(isFirstDay(startDate)){
months++;
}
needpay = new BigDecimal(months).multiply(priceD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(months).multiply(priceD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}else{
//needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,false))
.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,false))
.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
}
}else{//中间
@@ -459,10 +460,10 @@ public class WxRentContractHelper {
//如果当月费用需要按天计算
if (monthCalDay) {
//needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,false))
.setScale(wxRentContract.getDecimalSize(), BigDecimal.ROUND_HALF_UP).toPlainString();
needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,false))
.setScale(Constant.default_long_decimal_size, BigDecimal.ROUND_HALF_UP).toPlainString();
}else {
needpay = new BigDecimal(months).multiply(priceD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString();
needpay = new BigDecimal(months).multiply(priceD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString();
}
}
}


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

@@ -349,19 +349,19 @@ public class WxBillRentServiceImpl implements WxBillRentService {
if(EnumBusRatioTime.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())){
if(startInt == endInt && months == 12){
//刚好1年
ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0);
ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0);
}else{
ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0);
ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0);
}
}else if(EnumBusRatioTime.MONTH.getCode().equals(wxRentContract.getBusDiscountTime())){
if(startInt == endInt && months == 1){
//刚好1个月
ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0);
ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0);
}else{
ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0);
ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0);
}
}else if(EnumBusRatioTime.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())){
ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod());
ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod());
}
}
}


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

@@ -3278,15 +3278,15 @@ public class WxRentContractServiceImpl implements WxRentContractService {
for (int i = 0 ; i <= months ; i++ ) {
BigDecimal _money = new BigDecimal(0);
if (i == 0 ) {
_money = sumTradeDailyBySameMonthDay(wxRentContract.getDecimalSize(),bq, wxRentContract.getMerchantId(), br.getStarttime(),
_money = sumTradeDailyBySameMonthDay(Constant.default_long_decimal_size,bq, wxRentContract.getMerchantId(), br.getStarttime(),
DateUtils.getLastDayForMonth(br.getStarttime()));
}else if (i == months){
_money = sumTradeDailyBySameMonthDay(wxRentContract.getDecimalSize(),bq, wxRentContract.getMerchantId(),
_money = sumTradeDailyBySameMonthDay(Constant.default_long_decimal_size,bq, wxRentContract.getMerchantId(),
DateUtils.getFirstDayForCurrMonth(DateUtils.getTimeAfterMonths(i,br.getStarttime())),
DateUtils.getDayEnd(DateUtils.getTimeAfterDays(-1, br.getEndtime())));
}else {
Date _date = DateUtils.getTimeAfterMonths(i,br.getStarttime());
_money = sumTradeDailyBySameMonthDay(wxRentContract.getDecimalSize(),bq, wxRentContract.getMerchantId(),
_money = sumTradeDailyBySameMonthDay(Constant.default_long_decimal_size,bq, wxRentContract.getMerchantId(),
DateUtils.getFirstDayForCurrMonth(_date),
DateUtils.getLastDayForMonth(_date));
}
@@ -3295,7 +3295,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}else {
//同一个月
//合同账单结束的时间是00:00:00,取日期要取前一天
needPay = sumTradeDailyBySameMonthDay(wxRentContract.getDecimalSize(),bq, wxRentContract.getMerchantId(),
needPay = sumTradeDailyBySameMonthDay(Constant.default_long_decimal_size,bq, wxRentContract.getMerchantId(),
br.getStarttime(), DateUtils.getDayEnd(br.getEndtime()));
}
needPay = needPay.multiply(new BigDecimal(wxRentContract.getPayRatio()))


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