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