Просмотр исходного кода

[账单][修改][修改滞纳金展示逻辑]

release_toaliyun_real
luozukai 6 лет назад
Родитель
Сommit
f66aa3a96e
24 измененных файлов: 219 добавлений и 45 удалений
  1. +57
    -7
      mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillActionController.java
  2. +8
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxBillAction.java
  3. +8
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java
  4. +10
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java
  5. +4
    -4
      mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java
  6. +1
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxBillActionMapper.java
  7. +4
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxPropertyContractMapper.java
  8. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java
  9. +3
    -0
      mallinkService/src/main/java/com/iformall/service/WxBillActionService.java
  10. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxBillAllService.java
  11. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java
  12. +3
    -3
      mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
  13. +7
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java
  14. +13
    -12
      mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java
  15. +12
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java
  16. +12
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java
  17. +5
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  18. +5
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  19. +21
    -0
      mallinkService/src/main/java/com/iformall/utils/DateUtils.java
  20. +13
    -1
      mallinkService/src/main/resources/mapper/WxBillActionMapper.xml
  21. +6
    -5
      mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml
  22. +11
    -11
      mallinkService/src/main/resources/mapper/WxBillRentMapper.xml
  23. +6
    -0
      mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml
  24. +5
    -1
      mallinkService/src/main/resources/mapper/WxRentContractMapper.xml

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

@@ -4,9 +4,9 @@ import com.github.pagehelper.PageInfo;
import com.iformall.annotation.SystemControllerLog; import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.BaseEntity;
import com.iformall.domain.po.WxBillAction;
import com.iformall.service.WxBillActionService;
import com.iformall.domain.po.*;
import com.iformall.enums.EnumBillTypeParam;
import com.iformall.service.*;
import com.iformall.utils.DateUtils; import com.iformall.utils.DateUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -21,6 +21,12 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

/** /**
* @author gongbiao * @author gongbiao
*/ */
@@ -33,6 +39,14 @@ public class WxBillActionController extends BaseController {


@Autowired @Autowired
private WxBillActionService wxBillActionService; private WxBillActionService wxBillActionService;
@Autowired
private WxRentContractService wxRentContractService;
@Autowired
private WxPropertyContractService wxPropertyContractService;
@Autowired
private WxBillRentService wxBillRentService;
@Autowired
private WxBillPropertyService wxBillPropertyService;


@GetMapping("list") @GetMapping("list")
@ApiImplicitParams({ @ApiImplicitParams({
@@ -50,24 +64,60 @@ public class WxBillActionController extends BaseController {
return new ResultData(result); return new ResultData(result);
} }


public void addSysLatePayBillAction(WxBillAction wxBillAction){

}

@ApiOperation("滞纳金变更列表") @ApiOperation("滞纳金变更列表")
@GetMapping("latePaylist") @GetMapping("latePaylist")
@SystemControllerLog(description = "账单操作记录-滞纳金列表") @SystemControllerLog(description = "账单操作记录-滞纳金列表")
public ResultData latePaylist(@ModelAttribute WxBillAction wxBillAction, Integer pageNum, Integer pageSize) { public ResultData latePaylist(@ModelAttribute WxBillAction wxBillAction, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxBillActionController::latePaylist"); logger.debug("[" + getIpAddr() + "] WxBillActionController::latePaylist");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if (null == wxBillAction) { if (null == wxBillAction) {
wxBillAction = new WxBillAction(); wxBillAction = new WxBillAction();
} }
Date frontDay = DateUtils.getDaySet(new Date(), Calendar.DATE,-1);
wxBillAction.setBillId(wxBillAction.getBillId());
wxBillAction.setStartDate(sdf.format(frontDay));
wxBillAction.setEndDate(sdf.format(frontDay)+" 23:59:59");
List<WxBillAction> billActionList = wxBillActionService.find(wxBillAction);
if(CollectionUtils.isEmpty(billActionList)){

}

wxBillAction.setTenantId(getTenantId()); wxBillAction.setTenantId(getTenantId());
wxBillAction.setSortColumns(BaseEntity.SortField.Id_DESC); wxBillAction.setSortColumns(BaseEntity.SortField.Id_DESC);
PageInfo<WxBillAction> result = wxBillActionService.listAsPage(wxBillAction, pageNum, pageSize); PageInfo<WxBillAction> result = wxBillActionService.listAsPage(wxBillAction, pageNum, pageSize);
if(result != null && CollectionUtils.isNotEmpty(result.getList())){ if(result != null && CollectionUtils.isNotEmpty(result.getList())){


// DateUtils.getDaySet()
// for (WxBillAction action:result.getList()) {
//
// }

Date startDate;
Date endDate = DateUtils.getDaySet(new Date(), Calendar.DATE,-1);;

if (EnumBillTypeParam.RENT.getCode().equals(result.getList().get(0).getBillType())) {
WxBillRent billRent = new WxBillRent();
billRent.setId(wxBillAction.getBillId());
WxRentContract rentContract = wxRentContractService.getByBill(billRent);
WxBillRent wxBillRent = wxBillRentService.getById(wxBillAction.getBillId());
startDate = DateUtils.getDaySet(wxBillRent.getReceiveDate(), Calendar.DATE,rentContract.getLatePayDay());
}else if (EnumBillTypeParam.PROPERTY.getCode().equals(result.getList().get(0).getBillType())) {
WxBillProperty billRent = new WxBillProperty();
billRent.setId(wxBillAction.getBillId());
WxPropertyContract propertyContract = wxPropertyContractService.getByBill(billRent);
WxBillProperty wxBillProperty = wxBillPropertyService.getById(wxBillAction.getBillId());
startDate = DateUtils.getDaySet(wxBillProperty.getReceiveDate(), Calendar.DATE,propertyContract.getLatePayDay());
}

Date curr = endDate;
for (WxBillAction action:result.getList()) {
if(sdf.format(curr).equals(action.getCreatetime())){
continue;
}

}
} }
return new ResultData(result); return new ResultData(result);
} }

} }

+ 8
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxBillAction.java Просмотреть файл

@@ -54,10 +54,18 @@ public class WxBillAction extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value = "付款时间", name = "payDate") @io.swagger.annotations.ApiModelProperty(value = "付款时间", name = "payDate")
private Date payDate; private Date payDate;


@io.swagger.annotations.ApiModelProperty(value = "账单类型", name = "billType")
private Integer billType;

@Transient @Transient
private Long oldPrice; private Long oldPrice;


@Transient @Transient
private Long newPrice; private Long newPrice;



@Transient
private String startDate;
@Transient
private String endDate;
} }

+ 8
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java Просмотреть файл

@@ -168,4 +168,12 @@ public class WxBillProperty extends BaseEntity {
@Transient @Transient
private Long deposit; private Long deposit;


@Transient
private Integer limitStart;
@Transient
private Integer limitEnd;

@io.swagger.annotations.ApiModelProperty(value = "n日后开始计算滞纳金", name = "latePayRatio")
@Transient
private Integer latePayDay;
} }

+ 10
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java Просмотреть файл

@@ -179,5 +179,15 @@ public class WxBillRent extends BaseEntity {
@Transient @Transient
@io.swagger.annotations.ApiModelProperty(value = "联营费率", name = "payRatio") @io.swagger.annotations.ApiModelProperty(value = "联营费率", name = "payRatio")
private Long payRatio; private Long payRatio;

@Transient
private Integer limitStart;
@Transient
private Integer limitEnd;


@io.swagger.annotations.ApiModelProperty(value = "n日后开始计算滞纳金", name = "latePayRatio")
@Transient
private Integer latePayDay;
} }

+ 4
- 4
mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java Просмотреть файл

@@ -141,11 +141,11 @@ public class WxPropertyContract extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value = "调整比例", name = "adjustRatio") @io.swagger.annotations.ApiModelProperty(value = "调整比例", name = "adjustRatio")
private String adjustRatio; private String adjustRatio;


@io.swagger.annotations.ApiModelProperty(value = "滞纳金费率", name = "latePayDay")
private String latePayDay;
@io.swagger.annotations.ApiModelProperty(value = "滞纳金费率", name = "latePayRatio")
private String latePayRatio;


@io.swagger.annotations.ApiModelProperty(value = "n日后开始计算滞纳金", name = "latePayRatio")
private Integer latePayRatio;
@io.swagger.annotations.ApiModelProperty(value = "n日后开始计算滞纳金", name = "latePayDay")
private Integer latePayDay;


@Transient @Transient
@io.swagger.annotations.ApiModelProperty(value = "物业预账单列表", name = "previewBillRentList") @io.swagger.annotations.ApiModelProperty(value = "物业预账单列表", name = "previewBillRentList")


+ 1
- 0
mallinkService/src/main/java/com/iformall/mapper/WxBillActionMapper.java Просмотреть файл

@@ -13,4 +13,5 @@ public interface WxBillActionMapper extends CommonMapper<WxBillAction, Long> {


List<WxShop> findList(WxBillAction wxBillAction); List<WxShop> findList(WxBillAction wxBillAction);


List<WxBillAction> findBillActionList(WxBillAction wxBillAction);
} }

+ 4
- 0
mallinkService/src/main/java/com/iformall/mapper/WxPropertyContractMapper.java Просмотреть файл

@@ -1,6 +1,8 @@
package com.iformall.mapper; package com.iformall.mapper;


import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxBillProperty;
import com.iformall.domain.po.WxBillRent;
import com.iformall.domain.po.WxPropertyContract; import com.iformall.domain.po.WxPropertyContract;
import com.iformall.domain.po.WxRentContract; import com.iformall.domain.po.WxRentContract;


@@ -47,4 +49,6 @@ public interface WxPropertyContractMapper extends CommonMapper<WxPropertyContrac
void updateStatusByRentContractId(WxPropertyContract wxPropertyContract); void updateStatusByRentContractId(WxPropertyContract wxPropertyContract);


WxPropertyContract findOneByRentId(WxRentContract wxRentContract); WxPropertyContract findOneByRentId(WxRentContract wxRentContract);

WxPropertyContract getByBill(WxBillProperty billRent);
} }

+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java Просмотреть файл

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


import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxBillRent;
import com.iformall.domain.po.WxRentContract; import com.iformall.domain.po.WxRentContract;
import com.iformall.domain.vo.WxRentPropertyContractVo; import com.iformall.domain.vo.WxRentPropertyContractVo;


@@ -62,4 +63,5 @@ public interface WxRentContractMapper extends CommonMapper<WxRentContract, Long>


List<WxRentPropertyContractVo> listContractVo(WxRentPropertyContractVo record); List<WxRentPropertyContractVo> listContractVo(WxRentPropertyContractVo record);


WxRentContract getByBill(WxBillRent billRent);
} }

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

@@ -4,6 +4,8 @@ import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillAction;


import java.util.List;

/** /**
* @author gongbiao * @author gongbiao
*/ */
@@ -15,4 +17,5 @@ public interface WxBillActionService {


int modifyBill(WxBillAction wxBillAction, MallUserInfo mallUserInfo); int modifyBill(WxBillAction wxBillAction, MallUserInfo mallUserInfo);


List<WxBillAction> find(WxBillAction record);
} }

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

@@ -58,7 +58,7 @@ public interface WxBillAllService {


ResultData updateReceivePay(WxBillAll wxBillAll, MallUserInfo user); ResultData updateReceivePay(WxBillAll wxBillAll, MallUserInfo user);


void addBillAction(EnumBillAction billAction, Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo);
void addBillAction(EnumBillAction billAction, Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo,Integer billType);


void exportTemplate(WxBillExcelTemplate wxBillExcelTemplate, HttpServletRequest request, HttpServletResponse response); void exportTemplate(WxBillExcelTemplate wxBillExcelTemplate, HttpServletRequest request, HttpServletResponse response);




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

@@ -73,4 +73,6 @@ public interface WxPropertyContractService {
Map<String, Object> updateStatus(WxPropertyContract record); Map<String, Object> updateStatus(WxPropertyContract record);


List<WxBillProperty> buildProperty(WxMerchant wxMerchant, Long userId, WxPropertyContract propertyContract, Integer isPreview,boolean saveDb); List<WxBillProperty> buildProperty(WxMerchant wxMerchant, Long userId, WxPropertyContract propertyContract, Integer isPreview,boolean saveDb);

WxPropertyContract getByBill(WxBillProperty billRent);
} }

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

@@ -2,9 +2,7 @@ package com.iformall.service;


import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxBillRent;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxRentContract;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxRentPropertyContractVo; import com.iformall.domain.vo.WxRentPropertyContractVo;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;


@@ -94,4 +92,6 @@ public interface WxRentContractService {


Map<String, Object> updateStatus(WxRentContract record); Map<String, Object> updateStatus(WxRentContract record);


WxRentContract getByBill(WxBillRent billRent);

} }

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

@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.util.Date; import java.util.Date;
import java.util.List;


/** /**
* @author gongbiao * @author gongbiao
@@ -24,6 +25,11 @@ public class WxBillActionServiceImpl implements WxBillActionService {
@Autowired @Autowired
WxBillActionMapper wxBillActionMapper; WxBillActionMapper wxBillActionMapper;


@Override
public List<WxBillAction> find(WxBillAction record) {
return wxBillActionMapper.findBillActionList(record);
}

@Override @Override
public PageInfo<WxBillAction> listAsPage(WxBillAction record, Integer pageIndex, Integer pageSize) { public PageInfo<WxBillAction> listAsPage(WxBillAction record, Integer pageIndex, Integer pageSize) {
logger.info("查询账单操作记录列表"); logger.info("查询账单操作记录列表");
@@ -57,6 +63,7 @@ public class WxBillActionServiceImpl implements WxBillActionService {
Date date = new Date(); Date date = new Date();
wxBillAction.setCreatetime(date); wxBillAction.setCreatetime(date);
wxBillAction.setUpdatetime(date); wxBillAction.setUpdatetime(date);
wxBillAction.setBillType(action.getBillType());
return wxBillActionMapper.insertSelective(wxBillAction); return wxBillActionMapper.insertSelective(wxBillAction);
} }




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

@@ -784,7 +784,7 @@ public class WxBillAllServiceImpl implements WxBillAllService {
if(oldLatePrice != null){ if(oldLatePrice != null){
wxBillRent.setLatePayPrice(newLatePrice); wxBillRent.setLatePayPrice(newLatePrice);
wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent);
addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY,id, oldPrice, newPrice, user,billType);
}else{ }else{
//租赁账单更新 //租赁账单更新
wxBillRent.setReceivePay(newPrice); wxBillRent.setReceivePay(newPrice);
@@ -794,7 +794,7 @@ public class WxBillAllServiceImpl implements WxBillAllService {
} }
wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} }
} else if (billType.equals(EnumBillTypeParam.RENT_DEPOSIT.getCode())) { } else if (billType.equals(EnumBillTypeParam.RENT_DEPOSIT.getCode())) {
WxBillDeposit dbBill = wxBillDepositMapper.selectByPrimaryKey(id); WxBillDeposit dbBill = wxBillDepositMapper.selectByPrimaryKey(id);
@@ -809,7 +809,7 @@ public class WxBillAllServiceImpl implements WxBillAllService {
wxBillDeposit.setUpdatetime(updateDate); wxBillDeposit.setUpdatetime(updateDate);
wxBillDepositMapper.updateByPrimaryKeySelective(wxBillDeposit); wxBillDepositMapper.updateByPrimaryKeySelective(wxBillDeposit);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} else if (billType.equals(EnumBillTypeParam.PROPERTY.getCode())) { } else if (billType.equals(EnumBillTypeParam.PROPERTY.getCode())) {
WxBillProperty dbBill = wxBillPropertyMapper.selectByPrimaryKey(id); WxBillProperty dbBill = wxBillPropertyMapper.selectByPrimaryKey(id);
//物业账单更新 //物业账单更新
@@ -819,7 +819,7 @@ public class WxBillAllServiceImpl implements WxBillAllService {
if(oldLatePrice != null){ if(oldLatePrice != null){
wxBillProperty.setLatePayPrice(newLatePrice); wxBillProperty.setLatePayPrice(newLatePrice);
wxBillPropertyMapper.updateByPrimaryKeySelective(wxBillProperty); wxBillPropertyMapper.updateByPrimaryKeySelective(wxBillProperty);
addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY,id, oldPrice, newPrice, user,billType);
}else{ }else{
wxBillProperty.setReceivePay(newPrice); wxBillProperty.setReceivePay(newPrice);
wxBillProperty.setOwe(newPrice - dbBill.getPay()); wxBillProperty.setOwe(newPrice - dbBill.getPay());
@@ -828,7 +828,7 @@ public class WxBillAllServiceImpl implements WxBillAllService {
} }
wxBillPropertyMapper.updateByPrimaryKeySelective(wxBillProperty); wxBillPropertyMapper.updateByPrimaryKeySelective(wxBillProperty);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} }
} else if (billType.equals(EnumBillTypeParam.PROPERTY_DEPOSIT.getCode())) { } else if (billType.equals(EnumBillTypeParam.PROPERTY_DEPOSIT.getCode())) {
WxBillPropertyDeposit dbBill = wxBillPropertyDepositMapper.selectByPrimaryKey(id); WxBillPropertyDeposit dbBill = wxBillPropertyDepositMapper.selectByPrimaryKey(id);
@@ -843,22 +843,22 @@ public class WxBillAllServiceImpl implements WxBillAllService {
wxBillPropertyDeposit.setUpdatetime(updateDate); wxBillPropertyDeposit.setUpdatetime(updateDate);
wxBillPropertyDepositMapper.updateByPrimaryKeySelective(wxBillPropertyDeposit); wxBillPropertyDepositMapper.updateByPrimaryKeySelective(wxBillPropertyDeposit);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} else if (billType.equals(EnumBillTypeParam.WATER.getCode())) { } else if (billType.equals(EnumBillTypeParam.WATER.getCode())) {
//水费账单更新 //水费账单更新
updateDailyBill(id, newPrice, updateDate); updateDailyBill(id, newPrice, updateDate);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} else if (billType.equals(EnumBillTypeParam.POWER.getCode())) { } else if (billType.equals(EnumBillTypeParam.POWER.getCode())) {
//电费账单更新 //电费账单更新
updateDailyBill(id, newPrice, updateDate); updateDailyBill(id, newPrice, updateDate);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} else if (billType.equals(EnumBillTypeParam.AIR_CONDITIONING.getCode())) { } else if (billType.equals(EnumBillTypeParam.AIR_CONDITIONING.getCode())) {
//空调费账单更新 //空调费账单更新
updateDailyBill(id, newPrice, updateDate); updateDailyBill(id, newPrice, updateDate);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} else if (billType.equals(EnumBillTypeParam.ROUTINE.getCode())) { } else if (billType.equals(EnumBillTypeParam.ROUTINE.getCode())) {
WxBillOther dbBill = wxBillOtherMapper.selectByPrimaryKey(id); WxBillOther dbBill = wxBillOtherMapper.selectByPrimaryKey(id);
//其他费用账单更新 //其他费用账单更新
@@ -872,7 +872,7 @@ public class WxBillAllServiceImpl implements WxBillAllService {
wxBillOther.setUpdatetime(updateDate); wxBillOther.setUpdatetime(updateDate);
wxBillOtherMapper.updateByPrimaryKeySelective(wxBillOther); wxBillOtherMapper.updateByPrimaryKeySelective(wxBillOther);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} else if (billType.equals(EnumBillTypeParam.ATHER_DEPOSIT.getCode())) { } else if (billType.equals(EnumBillTypeParam.ATHER_DEPOSIT.getCode())) {
WxBillOtherDeposit dbBill = wxBillOtherDepositMapper.selectByPrimaryKey(id); WxBillOtherDeposit dbBill = wxBillOtherDepositMapper.selectByPrimaryKey(id);
//其他押金账单更新 //其他押金账单更新
@@ -886,7 +886,7 @@ public class WxBillAllServiceImpl implements WxBillAllService {
wxBillOtherDeposit.setUpdatetime(updateDate); wxBillOtherDeposit.setUpdatetime(updateDate);
wxBillOtherDepositMapper.updateByPrimaryKeySelective(wxBillOtherDeposit); wxBillOtherDepositMapper.updateByPrimaryKeySelective(wxBillOtherDeposit);
//账单日志 //账单日志
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user);
addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType);
} else { } else {
logger.info("未找到账单类型"); logger.info("未找到账单类型");
} }
@@ -894,13 +894,14 @@ public class WxBillAllServiceImpl implements WxBillAllService {
} }


@Override @Override
public void addBillAction(EnumBillAction billAction,Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo) {
public void addBillAction(EnumBillAction billAction,Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo,Integer billType) {
WxBillAction wxBillAction = new WxBillAction(); WxBillAction wxBillAction = new WxBillAction();
wxBillAction.setBillId(billId); wxBillAction.setBillId(billId);
String oldPriceStr = new BigDecimal(oldPrice).divide(new BigDecimal(100)).toPlainString(); String oldPriceStr = new BigDecimal(oldPrice).divide(new BigDecimal(100)).toPlainString();
String newPriceStr = new BigDecimal(newPrice).divide(new BigDecimal(100)).toPlainString(); String newPriceStr = new BigDecimal(newPrice).divide(new BigDecimal(100)).toPlainString();
wxBillAction.setDetails(oldPriceStr + "元变更成" + newPriceStr + "元"); wxBillAction.setDetails(oldPriceStr + "元变更成" + newPriceStr + "元");
wxBillAction.setAction(billAction.getCode()); wxBillAction.setAction(billAction.getCode());
wxBillAction.setBillType(billType);
wxBillActionService.modifyBill(wxBillAction, mallUserInfo); wxBillActionService.modifyBill(wxBillAction, mallUserInfo);
} }




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

@@ -53,6 +53,18 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService {
PageHelper.startPage(pageIndex, pageSize); PageHelper.startPage(pageIndex, pageSize);
List<WxBillProperty> billRentList = wxBillPropertyMapper.queryBillPropertyList(record); List<WxBillProperty> billRentList = wxBillPropertyMapper.queryBillPropertyList(record);
PageInfo<WxBillProperty> pageInfo = new PageInfo<>(billRentList); PageInfo<WxBillProperty> pageInfo = new PageInfo<>(billRentList);
billRentList.stream().forEach(b -> {
if(EnumBillRentStatus.WAIT_PAY.getCode().equals(b.getLatePayStatus()) && b.getLatePayRatio() != null){
int latePayDay = 1; //默认第二天开始叫滞纳金
if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay();
}
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(new Date(),startPay);
Double d = new Double(dayCount * b.getLatePayRatio()/10000 * b.getOwe());
b.setLatePayPrice(d.longValue());
}
});
return pageInfo; return pageInfo;
} }




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

@@ -52,6 +52,18 @@ public class WxBillRentServiceImpl implements WxBillRentService {
public PageInfo<WxBillRent> listAsPage(WxBillRent record, Integer pageIndex, Integer pageSize) { public PageInfo<WxBillRent> listAsPage(WxBillRent record, Integer pageIndex, Integer pageSize) {
PageHelper.startPage(pageIndex, pageSize); PageHelper.startPage(pageIndex, pageSize);
List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(record); List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(record);
billRentList.stream().forEach(b -> {
if(EnumBillRentStatus.WAIT_PAY.getCode().equals(b.getLatePayStatus()) && b.getLatePayRatio() != null){
int latePayDay = 1; //默认第二天开始叫滞纳金
if(b.getLatePayDay() != null){
latePayDay = b.getLatePayDay();
}
Date startPay = DateUtils.getDaySet(b.getReceiveDate(),Calendar.DATE,latePayDay);
long dayCount = DateUtils.startToEnd(new Date(),startPay);
Double d = new Double(dayCount * b.getLatePayRatio()/10000 * b.getOwe());
b.setLatePayPrice(d.longValue());
}
});
PageInfo<WxBillRent> pageInfo = new PageInfo<>(billRentList); PageInfo<WxBillRent> pageInfo = new PageInfo<>(billRentList);
return pageInfo; return pageInfo;
} }


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

@@ -1094,6 +1094,11 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
wxBillProperty.setPropertyContractId(wxPropertyContract.getId()); wxBillProperty.setPropertyContractId(wxPropertyContract.getId());
wxBillPropertyMapper.updateInvalidStatus(wxBillProperty); wxBillPropertyMapper.updateInvalidStatus(wxBillProperty);
} }

@Override
public WxPropertyContract getByBill(WxBillProperty billRent) {
return wxPropertyContractMapper.getByBill(billRent);
}
} }






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

@@ -2205,4 +2205,9 @@ public class WxRentContractServiceImpl implements WxRentContractService {
wxMerchantService.disable(rentContract.getMerchantId()); wxMerchantService.disable(rentContract.getMerchantId());
} }
} }

@Override
public WxRentContract getByBill(WxBillRent billRent) {
return wxRentContractMapper.getByBill(billRent);
}
} }

+ 21
- 0
mallinkService/src/main/java/com/iformall/utils/DateUtils.java Просмотреть файл

@@ -9,6 +9,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.Period; import java.time.Period;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@@ -1198,6 +1199,26 @@ public class DateUtils {
return calendar.getTime(); return calendar.getTime();
} }


/**
* 计算两个日期之间的间隔天数
* @param startDate
* @param endDate
* @return
*/
public static long startToEnd(Date startDate, Date endDate){
String[] startStr = new SimpleDateFormat("yyyy-MM-dd").format(startDate).split("-");
String[] endStr = new SimpleDateFormat("yyyy-MM-dd").format(endDate).split("-");
Integer startYear = Integer.parseInt(startStr[0]);
Integer startMonth = Integer.parseInt(startStr[1]);
Integer startDay = Integer.parseInt(startStr[2]);
Integer endYear = Integer.parseInt(endStr[0]);
Integer endMonth = Integer.parseInt(endStr[1]);
Integer endDay = Integer.parseInt(endStr[2]);
LocalDate endLocalDate = LocalDate.of(endYear,endMonth,endDay);
LocalDate startLocalDate = LocalDate.of(startYear,startMonth,startDay);
return startLocalDate.until(endLocalDate, ChronoUnit.DAYS);
}

public static void main(String[] args) { public static void main(String[] args) {
Date curDate = new Date(); Date curDate = new Date();
Date limitDate = DateUtils.getTimeAfterDays(7, curDate); Date limitDate = DateUtils.getTimeAfterDays(7, curDate);


+ 13
- 1
mallinkService/src/main/resources/mapper/WxBillActionMapper.xml Просмотреть файл

@@ -13,10 +13,11 @@
<result column="createtime" jdbcType="TIMESTAMP" property="createtime"/> <result column="createtime" jdbcType="TIMESTAMP" property="createtime"/>
<result column="updatetime" jdbcType="TIMESTAMP" property="updatetime"/> <result column="updatetime" jdbcType="TIMESTAMP" property="updatetime"/>
<result column="pay_date" jdbcType="TIMESTAMP" property="payDate"/> <result column="pay_date" jdbcType="TIMESTAMP" property="payDate"/>
<result column="bill_type" property="billType"/>
</resultMap> </resultMap>
<sql id="allColumns"> <sql id="allColumns">
`id`,`tenant_id`,`bill_id`,`user_id`,`user_name`,`phone`,`action`,`details`,`createtime`,`updatetime`,`pay_date`
`id`,`tenant_id`,`bill_id`,`user_id`,`user_name`,`phone`,`action`,`details`,`createtime`,`updatetime`,`pay_date`,bill_type


</sql> </sql>
@@ -34,6 +35,10 @@
<if test=" null != billId "> <if test=" null != billId ">
and `bill_id` = #{billId} and `bill_id` = #{billId}
</if> </if>

<if test=" null != startDate and null != endDate">
and `createtime` BETWEEN startDate and endDate
</if>
<if test=" null != ids "> <if test=" null != ids ">
and id in and id in
@@ -51,5 +56,12 @@
<include refid="dynamicWhereConditions"/> <include refid="dynamicWhereConditions"/>
</select> </select>


<select id="findBillActionList" parameterType="com.iformall.domain.po.WxBillAction" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from wx_bill_action
<include refid="dynamicWhereConditions"/>
</select>



</mapper> </mapper>

+ 6
- 5
mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml Просмотреть файл

@@ -37,7 +37,9 @@
<result column="deposit" property="deposit"/> <result column="deposit" property="deposit"/>
<result column="deposit_status" property="depositStatus"/> <result column="deposit_status" property="depositStatus"/>
<result column="all_period" property="allPeriod"/> <result column="all_period" property="allPeriod"/>

<result column="late_pay_day" property="latePayDay"/>
<result column="late_pay_ratio" property="latePayRatio"/>
</resultMap> </resultMap>


<sql id="allColumns"> <sql id="allColumns">
@@ -91,11 +93,10 @@
case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,m.`name` case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,m.`name`
merchant_name,s.shop_number,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,br.`period`, merchant_name,s.shop_number,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,br.`period`,
br.`revenue`,br.`late_pay_ratio`,br.`late_pay_time`,br.`property_contract_id`,d.receive_pay deposit, br.`revenue`,br.`late_pay_ratio`,br.`late_pay_time`,br.`property_contract_id`,d.receive_pay deposit,
case when br.late_pay_status=2 then (case when br.late_pay_time is null then 0
else FLOOR(DATEDIFF(now(),date_add(br.receive_date,interval r.late_pay_day day))*r.late_pay_ratio/10000*br.owe)end)
else br.late_pay_price end late_pay_price,d.`status`
br.late_pay_price,d.`status`
deposit_status,br.`shop_info`,br.pay_way,br.late_pay_status, deposit_status,br.`shop_info`,br.pay_way,br.late_pay_status,
br.`comments`,br.starttime,br.endtime
br.`comments`,br.starttime,br.endtime,
r.late_pay_day,r.late_pay_ratio
from wx_bill_property br left join wx_merchant m on br.merchant_id=m.id from wx_bill_property br left join wx_merchant m on br.merchant_id=m.id
left join wx_shop s on br.shop_id=s.id left join wx_shop s on br.shop_id=s.id
left join wx_property_contract r on br.property_contract_id=r.id left join wx_property_contract r on br.property_contract_id=r.id


+ 11
- 11
mallinkService/src/main/resources/mapper/WxBillRentMapper.xml Просмотреть файл

@@ -38,10 +38,10 @@
<result column="deposit_status" property="depositStatus"/> <result column="deposit_status" property="depositStatus"/>
<result column="rent_type" property="rentType"/> <result column="rent_type" property="rentType"/>
<result column="all_period" property="allPeriod"/> <result column="all_period" property="allPeriod"/>
<result column="pay_ratio" property="payRatio"/> <result column="pay_ratio" property="payRatio"/>

<result column="late_pay_day" property="latePayDay"/>
<result column="late_pay_ratio" property="latePayRatio"/>
</resultMap> </resultMap>


<sql id="allColumns"> <sql id="allColumns">
@@ -91,19 +91,15 @@
from wx_bill_rent from wx_bill_rent
<include refid="dynamicWhereConditions"/> <include refid="dynamicWhereConditions"/>
</select> </select>

<select id="queryBillRentList" parameterType="com.iformall.domain.po.WxBillRent" resultMap="BaseResultMap"> <select id="queryBillRentList" parameterType="com.iformall.domain.po.WxBillRent" resultMap="BaseResultMap">
select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`,br.`pay_date`,br.`createtime`,br.`expired_day`, select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`,br.`pay_date`,br.`createtime`,br.`expired_day`,
case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,r.merchant_name, case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,r.merchant_name,
s.shop_number,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,r.type as rent_type, s.shop_number,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,r.type as rent_type,
r.pay_ratio,br.`revenue`,br.`late_pay_ratio`,br.`late_pay_time`,br.`period`,br.`rent_contract_id`, r.pay_ratio,br.`revenue`,br.`late_pay_ratio`,br.`late_pay_time`,br.`period`,br.`rent_contract_id`,
d.receive_pay deposit,
case when br.late_pay_status=2 then (case when br.late_pay_time is null then 0
else FLOOR(DATEDIFF(now(),date_add(br.receive_date,interval r.late_pay_day day))*r.late_pay_ratio/10000*br.owe)end)
else br.late_pay_price end
late_pay_price,d.`status`
deposit_status,br.shop_info,br.pay_way,br.late_pay_status,br.`comments`,br.starttime,br.endtime
d.receive_pay deposit,d.`status`,br.late_pay_price
deposit_status,br.shop_info,br.pay_way,br.late_pay_status,br.`comments`,br.starttime,br.endtime,
r.late_pay_day,r.late_pay_ratio
from wx_bill_rent br from wx_bill_rent br
left join wx_shop s on br.shop_id=s.id left join wx_shop s on br.shop_id=s.id
left join wx_rent_contract r on br.rent_contract_id=r.id left join wx_rent_contract r on br.rent_contract_id=r.id
@@ -126,6 +122,10 @@
</if> </if>
</where> </where>
<if test=" null != sortColumns">order by ${sortColumns}</if> <if test=" null != sortColumns">order by ${sortColumns}</if>

<if test="null != limitStart and null != limitEnd">
limit #{limitStart},#{limitEnd}
</if>
</select> </select>


<select id="queryPayInfo" resultType="hashmap" parameterType="hashmap"> <select id="queryPayInfo" resultType="hashmap" parameterType="hashmap">


+ 6
- 0
mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml Просмотреть файл

@@ -240,4 +240,10 @@
<select id="findOneByRentId" parameterType="com.iformall.domain.po.WxRentContract" resultType="com.iformall.domain.po.WxPropertyContract"> <select id="findOneByRentId" parameterType="com.iformall.domain.po.WxRentContract" resultType="com.iformall.domain.po.WxPropertyContract">
select * from wx_property_contract where rent_contract_id =#{id} order by createtime desc limit 1 select * from wx_property_contract where rent_contract_id =#{id} order by createtime desc limit 1
</select> </select>

<select id="getByBill" parameterType="com.iformall.domain.po.WxBillProperty" resultMap="BaseResultMap">
select * from wx_property_contract where id in(
select property_contract_id from wx_bill_property id = #{id}
)
</select>
</mapper> </mapper>

+ 5
- 1
mallinkService/src/main/resources/mapper/WxRentContractMapper.xml Просмотреть файл

@@ -351,5 +351,9 @@
<if test=" null == sortColumns">order by rc.createtime desc,rc.id desc</if> <if test=" null == sortColumns">order by rc.createtime desc,rc.id desc</if>
</select> </select>



<select id="getByBill" parameterType="com.iformall.domain.po.WxBillRent" resultMap="BaseResultMap">
select * from wx_rent_contract where id in(
select rent_contract_id from wx_bill_rent id = #{id}
)
</select>
</mapper> </mapper>

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