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

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

release_toaliyun_real
luozukai 6 лет назад
Родитель
Сommit
b4bee45da8
8 измененных файлов: 63 добавлений и 97 удалений
  1. +1
    -74
      mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillActionController.java
  2. +0
    -2
      mallinkAdmin/src/main/resources/db/migration/V201907291424__L_ALTER_BILL.sql
  3. +48
    -0
      mallinkSchedule/src/main/java/com/iformall/schedule/LatePayBillActionSchedule.java
  4. +0
    -4
      mallinkService/src/main/java/com/iformall/domain/po/WxBillAction.java
  5. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxBillAllService.java
  6. +0
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java
  7. +12
    -13
      mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java
  8. +1
    -2
      mallinkService/src/main/resources/mapper/WxBillActionMapper.xml

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

@@ -5,9 +5,7 @@ import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.*;
import com.iformall.enums.EnumBillTypeParam;
import com.iformall.service.*;
import com.iformall.utils.DateUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -15,18 +13,11 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
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
*/
@@ -39,15 +30,8 @@ public class WxBillActionController extends BaseController {

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

@ApiOperation("账单操作记录列表")
@GetMapping("list")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@@ -63,61 +47,4 @@ public class WxBillActionController extends BaseController {
PageInfo<WxBillAction> result = wxBillActionService.listAsPage(wxBillAction, pageNum, pageSize);
return new ResultData(result);
}

public void addSysLatePayBillAction(WxBillAction wxBillAction){

}

@ApiOperation("滞纳金变更列表")
@GetMapping("latePaylist")
@SystemControllerLog(description = "账单操作记录-滞纳金列表")
public ResultData latePaylist(@ModelAttribute WxBillAction wxBillAction, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxBillActionController::latePaylist");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if (null == 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.setSortColumns(BaseEntity.SortField.Id_DESC);
PageInfo<WxBillAction> result = wxBillActionService.listAsPage(wxBillAction, pageNum, pageSize);
if(result != null && CollectionUtils.isNotEmpty(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);
}

}

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

@@ -1,2 +0,0 @@
ALTER TABLE `wx_bill_action`
ADD COLUMN `bill_type` INT(2) NULL DEFAULT 0 COMMENT '账单类型';

+ 48
- 0
mallinkSchedule/src/main/java/com/iformall/schedule/LatePayBillActionSchedule.java Просмотреть файл

@@ -0,0 +1,48 @@
package com.iformall.schedule;

import com.iformall.domain.po.WxMall;
import com.iformall.domain.vo.WxBillAll;
import com.iformall.mapper.WxMallMapper;
import com.iformall.service.WxBillAllService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.List;

/**
* @author luozukai
*/
@Component
public class LatePayBillActionSchedule {

private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private WxBillAllService wxBillAllService;

@Autowired
private WxMallMapper wxMallMapper;

/**
* 每天1点执行
*/
@Scheduled(cron = "0 0 1 * * ?")
public void updateBillStatus() {
logger.info("账单状态更新开始");

List<WxMall> wxMalls = wxMallMapper.findList(null);
for (WxMall wxMall : wxMalls) {
String tenantId = wxMall.getTenantId();
WxBillAll wxBillAll = new WxBillAll();
wxBillAll.setTenantId(tenantId);
wxBillAllService.updateBillStatus(wxBillAll);
}

logger.info("账单状态更新结束");
}


}

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

@@ -23,7 +23,6 @@ public class WxBillAction extends BaseEntity {
@Transient
protected List<Long> ids;


@io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId")
private String tenantId;

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

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

@Transient
private Long oldPrice;



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

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

ResultData updateReceivePay(WxBillAll wxBillAll, MallUserInfo user);

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

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



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

@@ -63,7 +63,6 @@ public class WxBillActionServiceImpl implements WxBillActionService {
Date date = new Date();
wxBillAction.setCreatetime(date);
wxBillAction.setUpdatetime(date);
wxBillAction.setBillType(action.getBillType());
return wxBillActionMapper.insertSelective(wxBillAction);
}



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

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

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



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

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

</sql>


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