From d88dcad96e3fd3d930ca58a5caadfbca0636cbb3 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 10:32:55 +0800 Subject: [PATCH 1/9] fix --- .../com/iformall/domain/po/WxEnergyMeter.java | 11 +++++++++++ .../service/impl/WxAllBillServiceImpl.java | 17 ++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java index 5d02f5a2e..98eb6e43e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java @@ -3,6 +3,8 @@ package com.iformall.domain.po; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumEnergyMeterType; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -36,6 +38,15 @@ public class WxEnergyMeter extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "表类型EnumEnergyMeterType", name = "type") private Integer type; + @TableField(exist = false) + private String typeName; + public String getTypeName() { + if (null != type) { + return EnumEnergyMeterType.getEnum(type).getMessage(); + } + return null; + } + @io.swagger.annotations.ApiModelProperty(value="倍率",name="rate") private String rate; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java index 5e660c336..8990a9b75 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -338,12 +338,19 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill } } + BigDecimal remainSetoff = new BigDecimal(dto.getSetOff()); if (latePayLastMoney.compareTo(new BigDecimal(0)) > 0 ) { opay = opay.add(latePayLastMoney); - wxBillRent.setPay(opay.toPlainString()); - //如果付款金额做了扣除手续费/滞纳金,则需要将本金抵扣写到备注 - if (new BigDecimal(dto.getAddpay()).compareTo(latePayLastMoney) > 0 ) { - sb.append(";已付金额增加").append(latePayLastMoney.toPlainString()); + //如果手续费+滞纳金未消耗到实际收款 + if (latePayLastMoney.compareTo(new BigDecimal(dto.getAddpay())) >= 0 ) { + wxBillRent.setPay(dto.getAddpay()); + sb.append(";已付金额增加").append(new BigDecimal(dto.getAddpay()).toPlainString()); + //实际应收的抵扣 + //remainSetoff = remainSetoff.subtract(latePayLastMoney.subtract(new BigDecimal(dto.getAddpay()))); + }else { + BigDecimal remainPay = new BigDecimal(dto.getAddpay()).subtract(latePayLastMoney); + wxBillRent.setPay(remainPay.toPlainString()); + sb.append(";已付金额增加").append(remainPay.toPlainString()); } if (opay.compareTo(new BigDecimal(dbBill.getOwe())) >= 0 ) { wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); @@ -354,7 +361,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill if (StringUtils.isBlank(oldSetOff)) { oldSetOff = "0"; } - wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(remainSetoff).toPlainString()); wxBillRent.setPayDate(new Date()); wxBillRent.setPayWay(dto.getPayWayObject().getId()); wxAllBillMapper.updateById(wxBillRent); From 4f1013ba1c0a770929005a40097082df19f27ee6 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 11:15:51 +0800 Subject: [PATCH 2/9] fix --- .../iformall/controller/rent/WxAllBillController.java | 4 +++- .../iformall/service/impl/WxFinanceServiceImpl.java | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index bc3828d4c..7399f398b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -633,6 +633,7 @@ public class WxAllBillController extends BillBaseController { if (null == wxMerchant.getId()) { return new ResultData(Result.ERROR,"请选择商户"); } + //wxMerchant.setIsPreview(EnumYesOrNo.NO.getCode()); wxMerchant.updateTenantInfo(getTenantInfo()); wxMerchant.setNeedPayPreDays(getNearBillBeforeDays()); List list = billAllHelper.getMerchantBillList(wxMerchant); @@ -671,8 +672,9 @@ public class WxAllBillController extends BillBaseController { if (null == wxMerchant.getId()) { return new ResultData(Result.ERROR,"请选择商户"); } + wxMerchant.setIsPreview(EnumYesOrNo.NO.getCode()); wxMerchant.updateTenantInfo(getTenantInfo()); - wxMerchant.setToPayMerchant(EnumYesOrNo.YES.getCode()); + //wxMerchant.setToPayMerchant(EnumYesOrNo.YES.getCode()); List list = billAllHelper.getMerchantBillList(wxMerchant); if (null != list && list.size() > 0 ) { List merchnatIds = new ArrayList(); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index dc72fbe2f..fd5b87a8d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -658,6 +658,16 @@ public class WxFinanceServiceImpl implements WxFinanceService { createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),null,Constant.bill_pay_way_setoff); //处理预充关联 createFinanceReceiveSetoff(addreceive,be,bill); + WxBillPayDTO payDto = new WxBillPayDTO(); + payDto.updateTenantInfo(addreceive); + payDto.setId(be.getId()); + payDto.setBillTypeValue(be.getBillType()); + payDto.setAddpay("0"); + payDto.setSetOff(be.getCurrentSetOff()); + payDto.setPayWay(Constant.bill_pay_way_setoff); + payDto.setPayWayObject(payWay0); + payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark()); + wxBillAllHelper.updatePay(payDto, user); } return noNeedCreate; } From 0f248bb86532d44af5589c8f44f563abb3b969ee Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 11:29:39 +0800 Subject: [PATCH 3/9] fix --- .../service/impl/WxAllBillServiceImpl.java | 21 ++++++++++++------- .../service/impl/WxFinanceServiceImpl.java | 4 ++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java index 8990a9b75..96e2a1b7d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -342,15 +342,20 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill if (latePayLastMoney.compareTo(new BigDecimal(0)) > 0 ) { opay = opay.add(latePayLastMoney); //如果手续费+滞纳金未消耗到实际收款 - if (latePayLastMoney.compareTo(new BigDecimal(dto.getAddpay())) >= 0 ) { - wxBillRent.setPay(dto.getAddpay()); - sb.append(";已付金额增加").append(new BigDecimal(dto.getAddpay()).toPlainString()); - //实际应收的抵扣 - //remainSetoff = remainSetoff.subtract(latePayLastMoney.subtract(new BigDecimal(dto.getAddpay()))); + BigDecimal pay = new BigDecimal(dto.getAddpay()); + if (latePayLastMoney.compareTo(pay) >= 0 ) { + if (pay.compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setPay(pay.toPlainString()); + sb.append(";已付金额增加").append(new BigDecimal(dto.getAddpay()).toPlainString()); + //实际应收的抵扣 + //remainSetoff = remainSetoff.subtract(latePayLastMoney.subtract(new BigDecimal(dto.getAddpay()))); + } }else { - BigDecimal remainPay = new BigDecimal(dto.getAddpay()).subtract(latePayLastMoney); - wxBillRent.setPay(remainPay.toPlainString()); - sb.append(";已付金额增加").append(remainPay.toPlainString()); + if (pay.compareTo(new BigDecimal(0)) > 0 ) { + BigDecimal remainPay = new BigDecimal(dto.getAddpay()).subtract(latePayLastMoney); + wxBillRent.setPay(remainPay.toPlainString()); + sb.append(";已付金额增加").append(remainPay.toPlainString()); + } } if (opay.compareTo(new BigDecimal(dbBill.getOwe())) >= 0 ) { wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index fd5b87a8d..ac01f2e95 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -665,6 +665,10 @@ public class WxFinanceServiceImpl implements WxFinanceService { payDto.setAddpay("0"); payDto.setSetOff(be.getCurrentSetOff()); payDto.setPayWay(Constant.bill_pay_way_setoff); + if (null == payWay0) { + payWay0 = new WxBillPayWay(); + payWay0.setId(Constant.bill_pay_way_setoff); + } payDto.setPayWayObject(payWay0); payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark()); wxBillAllHelper.updatePay(payDto, user); From 128f7571b0498be263defe57dc18c3b1947be6e4 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 11:42:32 +0800 Subject: [PATCH 4/9] fix --- .../java/com/iformall/service/impl/WxFinanceServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index ac01f2e95..7eb4fd9b9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -966,6 +966,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { rsq.updateTenantInfo(record); rsq.setBillId(bill.getId()); rsq.setBillType(bill.getBillType()); + rsq.setAdvanceId(rb.getReceiveId()); List setoffList = wxFinanceReceiveSetoffMapper.findList(rsq); if (null != setoffList) { for (int j = 0 ; j < setoffList.size() ; j ++) { From 12bacf9428272f6c417f7b871095a084b83a41f7 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 12:57:55 +0800 Subject: [PATCH 5/9] fix --- .../com/iformall/controller/rent/WxAllBillController.java | 4 ++-- .../java/com/iformall/domain/po/WxFinanceReceive.java | 2 ++ .../com/iformall/service/impl/WxFinanceServiceImpl.java | 8 ++++++++ .../src/main/resources/mapper/WxFinanceReceiveMapper.xml | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index 7399f398b..34058ccb2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -633,7 +633,7 @@ public class WxAllBillController extends BillBaseController { if (null == wxMerchant.getId()) { return new ResultData(Result.ERROR,"请选择商户"); } - //wxMerchant.setIsPreview(EnumYesOrNo.NO.getCode()); + wxMerchant.setIsPreview(EnumYesOrNo.NO.getCode()); wxMerchant.updateTenantInfo(getTenantInfo()); wxMerchant.setNeedPayPreDays(getNearBillBeforeDays()); List list = billAllHelper.getMerchantBillList(wxMerchant); @@ -674,7 +674,7 @@ public class WxAllBillController extends BillBaseController { } wxMerchant.setIsPreview(EnumYesOrNo.NO.getCode()); wxMerchant.updateTenantInfo(getTenantInfo()); - //wxMerchant.setToPayMerchant(EnumYesOrNo.YES.getCode()); + wxMerchant.setToPayMerchant(EnumYesOrNo.YES.getCode()); List list = billAllHelper.getMerchantBillList(wxMerchant); if (null != list && list.size() > 0 ) { List merchnatIds = new ArrayList(); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java index 56c4cc4f9..2be653253 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java @@ -151,5 +151,7 @@ public class WxFinanceReceive extends TenantEntity { private Integer finishStatus; @TableField(exist = false) private Long finishId; + @TableField(exist = false) + private Integer hasExtraMoney; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 7eb4fd9b9..72cb7f8b3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -255,7 +255,11 @@ public class WxFinanceServiceImpl implements WxFinanceService { } return sum.getAdvanceList(); }else { + faq.setType(EnumFinanceCashierType.RECEIVE.getCode()); + faq.setReceiveType(EnumFinanceReceiveType.ADVANCE.getCode()); + faq.setStatus(EnumFinanceReceiveStatus.NORMAL.getCode()); faq.setSortColumns(SortField.CreateTime_ASC); + faq.setHasExtraMoney(EnumYesOrNo.YES.getCode()); return wxFinanceReceiveMapper.findList(faq); } @@ -273,6 +277,10 @@ public class WxFinanceServiceImpl implements WxFinanceService { }else { List setoffList = bill.getSetOffDetailList(); for (int j = calcuteDto.getCurrentIndex(); j < calcuteDto.getAdvanceList().size() ; j++) { + owe = new BigDecimal(bill.getOwe()); + if (owe.compareTo(b0) <= 0) { + break; + } WxFinanceReceive advance = calcuteDto.getAdvanceList().get(j); BigDecimal remain = new BigDecimal(advance.getRemain()); if (remain.compareTo(b0) > 0) { diff --git a/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml index fa051b108..baac8ec2a 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml @@ -54,6 +54,7 @@ and `is_print` = #{isPrint} and `is_finish` = #{isFinish} and `status` in (1,3) + and receive_money - IFNULL(use_money,'0') > 0 and merchant_id in From 9b7f79b9504e40d91349c512d6b1401507c0f6c4 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 13:27:15 +0800 Subject: [PATCH 6/9] fix --- .../java/com/iformall/service/impl/WxFinanceServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 72cb7f8b3..296d3528e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -290,7 +290,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { FinanceSetOffDetailVo dv = new FinanceSetOffDetailVo(); dv.setAdvanceId(advance.getId()); BigDecimal billSetOff = null;//账单历史抵扣 - if (StringUtils.isBlank(bill.getSetOff())) { + if (StringUtils.isNotBlank(bill.getSetOff())) { billSetOff = new BigDecimal(bill.getSetOff()); }else { billSetOff = b0; @@ -310,6 +310,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { dv.setSetoff(remain.toPlainString()); setoffList.add(dv); bill.setSetOffDetailList(setoffList); + calcuteDto.setCurrentIndex(calcuteDto.getCurrentIndex()+1); setSetOff(bill,calcuteDto); }else { bill.setSetOff(billSetOff.add(owe).toPlainString()); @@ -318,6 +319,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { dv.setSetoff(owe.toPlainString()); setoffList.add(dv); bill.setSetOffDetailList(setoffList); + break; } }else { calcuteDto.setCurrentIndex(calcuteDto.getCurrentIndex()+1); From dc9bf4183a12e9e6fffcdf421527c8eab6754c2e Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 13:29:45 +0800 Subject: [PATCH 7/9] fix --- .../java/com/iformall/service/impl/WxFinanceServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 296d3528e..01b9cd839 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -352,6 +352,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { List retList = new ArrayList(); for (int i = 0 ; i < bills.size() ; i ++) { WxAllBill be = bills.get(i); + be.setSetOffDetailList(null); WxAllBill bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId()); be.setReceivePay(bill.getReceivePay()); be.setPay(bill.getPay()); From 928ced8492aecb81b8c266dedc8905a6b4962724 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 13:41:04 +0800 Subject: [PATCH 8/9] fix --- .../java/com/iformall/service/impl/WxFinanceServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 01b9cd839..99d2d1c60 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -353,6 +353,8 @@ public class WxFinanceServiceImpl implements WxFinanceService { for (int i = 0 ; i < bills.size() ; i ++) { WxAllBill be = bills.get(i); be.setSetOffDetailList(null); + be.setCurrentReceive(null); + be.setCurrentSetOff(null); WxAllBill bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId()); be.setReceivePay(bill.getReceivePay()); be.setPay(bill.getPay()); From a698f06d5139f6ad441c8ad46ef457b803b6f428 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 13 Aug 2024 13:49:44 +0800 Subject: [PATCH 9/9] fix --- .../java/com/iformall/service/impl/WxFinanceServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 99d2d1c60..4408ceccc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -795,7 +795,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { sortBills(bills); //创建主收款单 - WxFinanceReceive addreceive = generateReceive(receiveId,user,EnumFinanceCashierType.PAY ,EnumFinanceReceiveType.RECEIVE, null,payTotal.toPlainString(), record.getMerchantId(), null, record.getRemark()); + WxFinanceReceive addreceive = generateReceive(receiveId,user,EnumFinanceCashierType.PAY ,EnumFinanceReceiveType.RECEIVE, "0",payTotal.toPlainString(), record.getMerchantId(), null, record.getRemark()); if (payTotal.compareTo(new BigDecimal(0)) > 0) { addreceive.setMoneyDetail(JSON.toJSONString(record.getPayWays())); wxFinanceReceivePaywayMapper.insertPayWays(record.getTenantId(),receivePayWayList);