Kaynağa Gözat

fix

release_toaliyun_real
winter 1 yıl önce
ebeveyn
işleme
f36bda885f
8 değiştirilmiş dosya ile 108 ekleme ve 25 silme
  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 Dosyayı Görüntüle

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

+ 1
- 0
mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java Dosyayı Görüntüle

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


+ 3
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java Dosyayı Görüntüle

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


+ 2
- 0
mallinkService/src/main/java/com/iformall/service/WxAllBillService.java Dosyayı Görüntüle

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


+ 4
- 0
mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java Dosyayı Görüntüle

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


+ 19
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java Dosyayı Görüntüle

@@ -369,6 +369,10 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
} }
wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(remainSetoff).toPlainString()); wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(remainSetoff).toPlainString());
wxBillRent.setPayDate(new Date()); 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()); wxBillRent.setPayWay(dto.getPayWay());
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
dto.setRemark(sb.toString()); dto.setRemark(sb.toString());
@@ -521,6 +525,21 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
dto.getRemark(),null,null, user); 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 @Override
public void toMechantBackPay(WxBillPayDTO dto, MallUserInfo user) { public void toMechantBackPay(WxBillPayDTO dto, MallUserInfo user) {
WxAllBill dbBill = wxAllBillMapper.selectById(dto.getId(),dto.getTenantId()); WxAllBill dbBill = wxAllBillMapper.selectById(dto.getId(),dto.getTenantId());


+ 77
- 25
mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java Dosyayı Görüntüle

@@ -198,6 +198,16 @@ public class WxFinanceServiceImpl implements WxFinanceService {
payway3.setCreateTime(new Date()); payway3.setCreateTime(new Date());
payway3.setUpdateTime(new Date()); payway3.setUpdateTime(new Date());
wxBillPayWayMapper.insert(payway3); 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 @Override
@@ -586,6 +596,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
FinanceReceiveCalcuteDTO calcuteDto = new FinanceReceiveCalcuteDTO(); FinanceReceiveCalcuteDTO calcuteDto = new FinanceReceiveCalcuteDTO();
calcuteDto.setTotalRemainReceive(receiveTotal); calcuteDto.setTotalRemainReceive(receiveTotal);
calcuteDto.setTotalSetoff(setOffTotal); calcuteDto.setTotalSetoff(setOffTotal);
calcuteDto.setTotalCut(new BigDecimal(0));
//建立子账单关联单 //建立子账单关联单
for (int i = 0 ; i < record.getBills().size(); i++) { for (int i = 0 ; i < record.getBills().size(); i++) {
WxAllBill be = record.getBills().get(i); WxAllBill be = record.getBills().get(i);
@@ -682,6 +693,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
payDto.setAddpay(money); payDto.setAddpay(money);
payDto.setPayWay(payway0.getId()); payDto.setPayWay(payway0.getId());
payDto.setPayWayName(payway0.getPayWayName()); payDto.setPayWayName(payway0.getPayWayName());
payDto.setCut(be.getCurrentCut());
payDto.setRemark("收款单收款["+addreceive.getId()+"]"+addreceive.getRemark()+"收款明细:"+sb.toString()); payDto.setRemark("收款单收款["+addreceive.getId()+"]"+addreceive.getRemark()+"收款明细:"+sb.toString());
be.setCurrentReceive(money); be.setCurrentReceive(money);
bill.setCurrentReceive(money); bill.setCurrentReceive(money);
@@ -694,6 +706,12 @@ public class WxFinanceServiceImpl implements WxFinanceService {
//处理关联抵扣的预收单 //处理关联抵扣的预收单
createFinanceReceiveSetoff(addreceive,be,bill); 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); wxBillAllHelper.updatePay(payDto, user);
}else if (StringUtils.isNotBlank(be.getCurrentSetOff())) { }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); createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),null,Constant.bill_pay_way_setoff);
//处理预充关联 //处理预充关联
createFinanceReceiveSetoff(addreceive,be,bill); 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(); WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(addreceive); payDto.updateTenantInfo(addreceive);
payDto.setId(be.getId()); payDto.setId(be.getId());
payDto.setBillTypeValue(be.getBillType()); payDto.setBillTypeValue(be.getBillType());
payDto.setAddpay("0"); payDto.setAddpay("0");
payDto.setSetOff(be.getCurrentSetOff()); payDto.setSetOff(be.getCurrentSetOff());
payDto.setCut(be.getCurrentCut());
payDto.setPayWay(Constant.bill_pay_way_setoff); payDto.setPayWay(Constant.bill_pay_way_setoff);
payDto.setPayWayName("冲抵"); payDto.setPayWayName("冲抵");
payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark()); payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark());
@@ -1013,31 +1040,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
for (int i = 0 ; i < receiveBills.size() ; i ++) { for (int i = 0 ; i < receiveBills.size() ; i ++) {
WxFinanceReceiveBill rb = receiveBills.get(i); WxFinanceReceiveBill rb = receiveBills.get(i);
WxAllBill bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(rb.getBillType()), merchant, rb.getBillId()); 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(); WxFinanceReceiveSetoff rsq = new WxFinanceReceiveSetoff();
@@ -1079,6 +1082,55 @@ public class WxFinanceServiceImpl implements WxFinanceService {
wxBillAllHelper.backPay(payDto, user); wxBillAllHelper.backPay(payDto, user);
//记录删除 //记录删除
wxFinanceReceiveSetoffMapper.deleteByConditon(rsq); 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 Dosyayı Görüntüle

@@ -146,6 +146,7 @@ public class Constant {
public static final Long bill_pay_way_minigrame = 1L; 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_system = 2L;
public static final Long bill_pay_way_setoff = 3L; public static final Long bill_pay_way_setoff = 3L;
public static final Long bill_pay_way_cut = 4L;


} }

Yükleniyor…
İptal
Kaydet