winter 1 год назад
Родитель
Сommit
f36bda885f
8 измененных файлов: 108 добавлений и 25 удалений
  1. +1
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/FinanceReceiveCalcuteDTO.java
  2. +1
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java
  3. +3
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxAllBillService.java
  5. +4
    -0
      mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java
  6. +19
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java
  7. +77
    -25
      mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java
  8. +1
    -0
      mallinkService/src/main/java/com/iformall/utils/Constant.java

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

@@ -16,4 +16,5 @@ public class FinanceReceiveCalcuteDTO extends TenantEntity{
private BigDecimal totalRemainReceive;
private BigDecimal totalSetoff;
private BigDecimal totalRemainPay;
private BigDecimal totalCut;
}

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

@@ -18,6 +18,7 @@ public class WxBillPayDTO extends TenantEntity{
private String payToMerchant;//支付给商户金额
private String setOff="0";//冲抵金额
private Long payWay;//传值
private String cut="0";//减免金额
private String payWayName;//传值
private String remark;
private String image;


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

@@ -341,6 +341,9 @@ public class WxAllBill extends TenantEntity {
@TableField(exist = false)
private String currentReceive;
@TableField(exist = false)
private String currentCut;
@TableField(exist = false)
private Date shopEndtime;


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

@@ -61,6 +61,8 @@ public interface WxAllBillService {
void backPay(WxBillPayDTO dto,MallUserInfo user);
void backCut(WxBillPayDTO dto,MallUserInfo user);
void toMechantBackPay(WxBillPayDTO dto,MallUserInfo user);
void rentContractStop(WxRentContract rentContract,MallUserInfo user);


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

@@ -313,6 +313,10 @@ public class WxBillAllHelper {
wxAllBillService.backPay(dto, user);
}
public void backCut(WxBillPayDTO dto,MallUserInfo user) {
wxAllBillService.backCut(dto, user);
}
public void toMechantBackPay(WxBillPayDTO dto,MallUserInfo user) {
wxAllBillService.toMechantBackPay(dto, user);
}


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

@@ -369,6 +369,10 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
}
wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(remainSetoff).toPlainString());
wxBillRent.setPayDate(new Date());
if (StringUtils.isNotBlank(dto.getCut())) {
wxBillRent.setReceivePay(new BigDecimal(dbBill.getReceivePay()).subtract(new BigDecimal(dto.getCut())).toPlainString());
sb.append(";本次减免金额").append(dto.getCut());
}
wxBillRent.setPayWay(dto.getPayWay());
wxAllBillMapper.updateById(wxBillRent);
dto.setRemark(sb.toString());
@@ -521,6 +525,21 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
dto.getRemark(),null,null, user);
}
@Override
public void backCut(WxBillPayDTO dto, MallUserInfo user) {
WxAllBill dbBill = wxAllBillMapper.selectById(dto.getId(),dto.getTenantId());
WxAllBill wxBillRent = new WxAllBill();
wxBillRent.setId(dto.getId());
wxBillRent.updateTenantInfo(dto);
wxBillRent.setUpdatetime(new Date());
wxBillRent.setReceivePay(new BigDecimal(dbBill.getReceivePay()).add(new BigDecimal(dto.getCut())).toPlainString());
wxAllBillMapper.updateById(wxBillRent);
EnumBillAction action = EnumBillAction.RETURN;
this.addBillAction(action, dto.getBillTypeValue(),dto.getId(),
dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(),
dto.getRemark(),null,null, user);
}
@Override
public void toMechantBackPay(WxBillPayDTO dto, MallUserInfo user) {
WxAllBill dbBill = wxAllBillMapper.selectById(dto.getId(),dto.getTenantId());


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

@@ -198,6 +198,16 @@ public class WxFinanceServiceImpl implements WxFinanceService {
payway3.setCreateTime(new Date());
payway3.setUpdateTime(new Date());
wxBillPayWayMapper.insert(payway3);
WxBillPayWay payway4 = new WxBillPayWay();
payway4.updateTenantInfo(tenantInfo);
payway4.setId(Constant.bill_pay_way_cut);
payway4.setName("减免");
payway4.setIsDel(EnumYesOrNo.NO.getCode());
payway4.setIsSystem(EnumYesOrNo.YES.getCode());
payway4.setCreateTime(new Date());
payway4.setUpdateTime(new Date());
wxBillPayWayMapper.insert(payway4);
}

@Override
@@ -586,6 +596,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
FinanceReceiveCalcuteDTO calcuteDto = new FinanceReceiveCalcuteDTO();
calcuteDto.setTotalRemainReceive(receiveTotal);
calcuteDto.setTotalSetoff(setOffTotal);
calcuteDto.setTotalCut(new BigDecimal(0));
//建立子账单关联单
for (int i = 0 ; i < record.getBills().size(); i++) {
WxAllBill be = record.getBills().get(i);
@@ -682,6 +693,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
payDto.setAddpay(money);
payDto.setPayWay(payway0.getId());
payDto.setPayWayName(payway0.getPayWayName());
payDto.setCut(be.getCurrentCut());
payDto.setRemark("收款单收款["+addreceive.getId()+"]"+addreceive.getRemark()+"收款明细:"+sb.toString());
be.setCurrentReceive(money);
bill.setCurrentReceive(money);
@@ -694,6 +706,12 @@ public class WxFinanceServiceImpl implements WxFinanceService {
//处理关联抵扣的预收单
createFinanceReceiveSetoff(addreceive,be,bill);
}
//有减免
if(StringUtils.isNotBlank(be.getCurrentCut())) {
calcuteDto.setTotalCut(calcuteDto.getTotalCut().add(new BigDecimal(be.getCurrentCut())));
//创建一个减免收款单
createFinanceReceiveBill(addreceive,bill,be.getCurrentCut(),null,Constant.bill_pay_way_cut);
}
wxBillAllHelper.updatePay(payDto, user);
}else if (StringUtils.isNotBlank(be.getCurrentSetOff())) {
@@ -704,12 +722,21 @@ public class WxFinanceServiceImpl implements WxFinanceService {
createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),null,Constant.bill_pay_way_setoff);
//处理预充关联
createFinanceReceiveSetoff(addreceive,be,bill);
//有减免
if(StringUtils.isNotBlank(be.getCurrentCut())) {
calcuteDto.setTotalCut(calcuteDto.getTotalCut().add(new BigDecimal(be.getCurrentCut())));
//创建一个减免收款单
createFinanceReceiveBill(addreceive,bill,be.getCurrentCut(),null,Constant.bill_pay_way_cut);
}
WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(addreceive);
payDto.setId(be.getId());
payDto.setBillTypeValue(be.getBillType());
payDto.setAddpay("0");
payDto.setSetOff(be.getCurrentSetOff());
payDto.setCut(be.getCurrentCut());
payDto.setPayWay(Constant.bill_pay_way_setoff);
payDto.setPayWayName("冲抵");
payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark());
@@ -1013,31 +1040,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
for (int i = 0 ; i < receiveBills.size() ; i ++) {
WxFinanceReceiveBill rb = receiveBills.get(i);
WxAllBill bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(rb.getBillType()), merchant, rb.getBillId());
if (!rb.getPayWay().equals(Constant.bill_pay_way_setoff)) {
//账单回退
WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(record);
payDto.setId(bill.getId());
payDto.setBillTypeValue(bill.getBillType());
if (record.getType().intValue() == EnumFinanceCashierType.RECEIVE.getCode().intValue()) {
payDto.setAddpay(rb.getReceive());
if (isRedSetoff) {
payDto.setRemark("收款单红冲,自动回退");
}else {
payDto.setRemark("收款单作废,自动回退");
}
wxBillAllHelper.backPay(payDto, user);
}else {
payDto.setPayToMerchant(rb.getPay());
if (isRedSetoff) {
payDto.setRemark("付款单红冲,自动回退");
}else {
payDto.setRemark("付款单作废,自动回退");
}
wxBillAllHelper.toMechantBackPay(payDto, user);
}
}else {
if (rb.getPayWay().equals(Constant.bill_pay_way_setoff)) {
//预收单冲抵回退
//查询账单关联的预充收款单,每个预售单的金额回退
WxFinanceReceiveSetoff rsq = new WxFinanceReceiveSetoff();
@@ -1079,6 +1082,55 @@ public class WxFinanceServiceImpl implements WxFinanceService {
wxBillAllHelper.backPay(payDto, user);
//记录删除
wxFinanceReceiveSetoffMapper.deleteByConditon(rsq);
}if (rb.getPayWay().equals(Constant.bill_pay_way_cut)) {
//减免回退
WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(record);
payDto.setId(bill.getId());
payDto.setBillTypeValue(bill.getBillType());
if (record.getType().intValue() == EnumFinanceCashierType.RECEIVE.getCode().intValue()) {
payDto.setCut(rb.getReceive());
if (isRedSetoff) {
payDto.setRemark("收款单红冲,减免自动回退");
}else {
payDto.setRemark("收款单作废,减免回退");
}
wxBillAllHelper.backCut(payDto, user);
}else {
//付款无减免
// payDto.setPayToMerchant(rb.getPay());
// if (isRedSetoff) {
// payDto.setRemark("付款单红冲,自动回退");
// }else {
// payDto.setRemark("付款单作废,自动回退");
// }
// wxBillAllHelper.toMechantBackPay(payDto, user);
}
}else {
//账单回退
WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(record);
payDto.setId(bill.getId());
payDto.setBillTypeValue(bill.getBillType());
if (record.getType().intValue() == EnumFinanceCashierType.RECEIVE.getCode().intValue()) {
payDto.setAddpay(rb.getReceive());
if (isRedSetoff) {
payDto.setRemark("收款单红冲,自动回退");
}else {
payDto.setRemark("收款单作废,自动回退");
}
wxBillAllHelper.backPay(payDto, user);
}else {
payDto.setPayToMerchant(rb.getPay());
if (isRedSetoff) {
payDto.setRemark("付款单红冲,自动回退");
}else {
payDto.setRemark("付款单作废,自动回退");
}
wxBillAllHelper.toMechantBackPay(payDto, user);
}
}
}
}


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

@@ -146,6 +146,7 @@ public class Constant {
public static final Long bill_pay_way_minigrame = 1L;
public static final Long bill_pay_way_system = 2L;
public static final Long bill_pay_way_setoff = 3L;
public static final Long bill_pay_way_cut = 4L;

}

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