diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index abc2b2005..d17232998 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -248,7 +248,24 @@ public class WxFinanceController extends BaseController { if (receive.getStatus().intValue() != EnumFinanceReceiveStatus.NORMAL.getCode().intValue()) { return new ResultData(Result.ERROR,"该状态不允许操作"); } - wxFinanceService.invalidReceive(record, getUser()); + if (StringUtils.isNotBlank(record.getRemark())) { + receive.setRemark(record.getRemark()); + } + wxFinanceService.invalidReceive(receive, getUser()); + return new ResultData(); + } + + @ApiOperation("红冲") + @PostMapping("receiveRedSet") + public ResultData receiveRedSet(@RequestBody WxFinanceReceive record) { + WxFinanceReceive receive = wxFinanceService.getReceiveById(this.getTenantInfo(), record.getId()); + if (receive.getStatus().intValue() != EnumFinanceReceiveStatus.FINISH.getCode().intValue()) { + return new ResultData(Result.ERROR,"该状态不允许操作"); + } + if (StringUtils.isNotBlank(record.getRemark())) { + receive.setRemark(record.getRemark()); + } + wxFinanceService.redSetoffReceive(receive, getUser()); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java index fec6a415a..ccf8608a9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java @@ -64,6 +64,9 @@ public class WxFinanceReceiveBill extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="账单结束周期",name="endtime") private Date endtime; + @io.swagger.annotations.ApiModelProperty(value = "是否已删除", name = "isDel") + private Integer isDel; + @TableField(exist = false) private String shopNumber; @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java index 6c8f7526b..26bd554ef 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java @@ -48,4 +48,7 @@ public class WxFinanceReceiveSetoff extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="科目编号",name="feesId") private Long merchantId; + + @io.swagger.annotations.ApiModelProperty(value = "是否已删除", name = "isDel") + private Integer isDel; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java index 18cebfa1c..f72722058 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java @@ -65,6 +65,9 @@ public enum EnumBillAction { } }else if (code.intValue() == RETURN.code.intValue()) { sb.append(newMoney).append("元"); + if (StringUtils.isNotBlank(setoffMoney) && new BigDecimal(setoffMoney).compareTo(new BigDecimal(0)) > 0 ) { + sb.append(",预收冲抵退回").append(setoffMoney).append("元"); + } }else if (code.intValue() == UPDATE_LATE_PAY_MONEY.code.intValue()) { sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); }else if (code.intValue() == UPDATE_SERVICE_MONEY.code.intValue()) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java index c47ebff91..7f4e1bc1c 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java @@ -12,5 +12,7 @@ public interface WxFinanceReceiveBillMapper extends CommonMapper findList(WxFinanceReceiveBill wxBillRent); WxFinanceReceiveBill selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + void deleteByConditon(WxFinanceReceiveBill wxBillRent); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java index 01bc863a5..00b8c245d 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java @@ -10,7 +10,10 @@ import java.util.List; public interface WxFinanceReceiveSetoffMapper extends CommonMapper { List findList(WxFinanceReceiveSetoff wxBillRent); + Integer findCount(WxFinanceReceiveSetoff wxBillRent); WxFinanceReceiveSetoff selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + void deleteByConditon(WxFinanceReceiveSetoff wxBillRent); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillAdvanceService.java b/mallinkService/src/main/java/com/iformall/service/WxBillAdvanceService.java index f4f413728..44968c3d1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillAdvanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillAdvanceService.java @@ -55,7 +55,7 @@ public interface WxBillAdvanceService { List getMerchantIds(WxBillAdvance wxBillRent); void updateReceivePay(WxBillReceiveUpdateDTO dto,MallUserInfo user,boolean forcePaid); - + void backPay(WxBillPayDTO dto,MallUserInfo user); void updatePay(WxBillPayDTO dto,MallUserInfo user); void updatePayByMerchant(WxBillPayDTO dto,WxMerchantBUser user,boolean isOnline); void bad(WxBillPayDTO dto,MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java b/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java index a84c3f9cb..26854e3f7 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java @@ -80,6 +80,7 @@ public interface WxBillDailyService { public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); public void notify(WxBillPayDTO dto, MallUserInfo user); + void backPay(WxBillPayDTO dto,MallUserInfo user); public void updatePay(WxBillPayDTO dto, MallUserInfo user); public void updatePayByMerchant(WxBillPayDTO dto, WxMerchantBUser user,boolean isOnline); public void bad(WxBillPayDTO dto,MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillDepositService.java b/mallinkService/src/main/java/com/iformall/service/WxBillDepositService.java index 29cc5798a..0e4e05366 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillDepositService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillDepositService.java @@ -83,6 +83,7 @@ public interface WxBillDepositService { public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); public void notify(WxBillPayDTO dto, MallUserInfo user); + void backPay(WxBillPayDTO dto,MallUserInfo user); public void updatePay(WxBillPayDTO dto, MallUserInfo user); public void updatePayByMerchant(WxBillPayDTO dto, WxMerchantBUser user,boolean isOnline); public void returnDeposit(WxBillPayDTO dto, MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java b/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java index 3a13d89ae..73ec3e0df 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java @@ -79,6 +79,7 @@ public interface WxBillOtherDepositService { public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); public void notify(WxBillPayDTO dto, MallUserInfo user); + void backPay(WxBillPayDTO dto,MallUserInfo user); public void updatePay(WxBillPayDTO dto, MallUserInfo user); public void updatePayByMerchant(WxBillPayDTO dto, WxMerchantBUser user,boolean isOnline); public void returnDeposit(WxBillPayDTO dto, MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java b/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java index 17c158bb1..6dfe7a8e5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java @@ -75,6 +75,7 @@ public interface WxBillOtherService { public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) ; public void notify(WxBillPayDTO dto, MallUserInfo user); + void backPay(WxBillPayDTO dto,MallUserInfo user); public void updatePay(WxBillPayDTO dto, MallUserInfo user); public void updatePayByMerchant(WxBillPayDTO dto, WxMerchantBUser user ,boolean isOnline); public void bad(WxBillPayDTO dto,MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyDepositService.java b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyDepositService.java index aecc07a34..eebbc2d0f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyDepositService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyDepositService.java @@ -85,6 +85,7 @@ public interface WxBillPropertyDepositService { public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); public void notify(WxBillPayDTO dto, MallUserInfo user); + void backPay(WxBillPayDTO dto,MallUserInfo user); public void updatePay(WxBillPayDTO dto, MallUserInfo user); public void updatePayByMerchant(WxBillPayDTO dto, WxMerchantBUser user,boolean isOnline); public void returnDeposit(WxBillPayDTO dto, MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java index 20bc0742e..8273d7a5d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java @@ -92,6 +92,7 @@ public interface WxBillPropertyService { public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); public void notify(WxBillPayDTO dto, MallUserInfo user); + void backPay(WxBillPayDTO dto,MallUserInfo user); public void updatePay(WxBillPayDTO dto, MallUserInfo user); public void updatePayByMerchant(WxBillPayDTO dto, WxMerchantBUser user,boolean isOnline); public void bad(WxBillPayDTO dto,MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillRentManageService.java b/mallinkService/src/main/java/com/iformall/service/WxBillRentManageService.java index 03b53783a..10bb8d82f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillRentManageService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillRentManageService.java @@ -91,6 +91,7 @@ public interface WxBillRentManageService { void updateReceivePay(WxBillReceiveUpdateDTO dto,MallUserInfo user,boolean forcePaid); public void notify(WxBillPayDTO dto, MallUserInfo user); + void backPay(WxBillPayDTO dto,MallUserInfo user); public void updatePay(WxBillPayDTO dto, MallUserInfo user); public void updatePayByMerchant(WxBillPayDTO dto, WxMerchantBUser user,boolean isOnline); public void bad(WxBillPayDTO dto,MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java b/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java index c813e36d8..ea7188244 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java @@ -92,6 +92,7 @@ public interface WxBillRentService { void updateReceivePay(WxBillReceiveUpdateDTO dto,MallUserInfo user,boolean forcePaid); void notify(WxBillPayDTO dto,MallUserInfo user); + void backPay(WxBillPayDTO dto,MallUserInfo user); void updatePay(WxBillPayDTO dto,MallUserInfo user); void updatePayByMerchant(WxBillPayDTO dto,WxMerchantBUser user,boolean isOnline); void bad(WxBillPayDTO dto,MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index e18a41bd1..eee05106b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -28,6 +28,7 @@ public interface WxFinanceService { List createReceive(WxFinanceReceive record,MallUserInfo user); WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); void invalidReceive(WxFinanceReceive record,MallUserInfo user); + void redSetoffReceive(WxFinanceReceive record,MallUserInfo user); //预收款 List calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user); FinanceBillSetoffSum getBillSetoffSum(WxFinanceReceive record); diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java index ab3a43ba6..5942b6cd7 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java @@ -959,6 +959,30 @@ public class WxBillAllHelper { } } + public void backPay(WxBillPayDTO dto,MallUserInfo user) { + if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT.getCode().intValue()) { + wxBillRentService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_BUSSINESS_MANAGE.getCode().intValue()) { + wxBillRentManageService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_OPERATION_MANAGE.getCode().intValue()) { + wxBillRentManageService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_DEPOSIT.getCode().intValue()) { + wxBillRentDepositService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.PROPERTY.getCode().intValue()) { + wxBillPropertyService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.PROPERTY_DEPOSIT.getCode().intValue()) { + wxBillPropertyDepositService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.DAILY.getCode().intValue()) { + wxBillDailyService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.OTHER.getCode().intValue()) { + wxBillOtherService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.OTHER_DEPOSIT.getCode().intValue()) { + wxBillOtherDepositService.backPay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.ADVANCE.getCode().intValue()) { + wxBillAdvanceService.backPay(dto, user); + } + } + public void updatePay(WxBillPayDTO dto,MallUserInfo user) { if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT.getCode().intValue()) { wxBillRentService.updatePay(dto, user); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAdvanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAdvanceServiceImpl.java index eda005941..ad0d641e7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAdvanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAdvanceServiceImpl.java @@ -14,6 +14,7 @@ import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillAdvance; import com.iformall.domain.po.WxBillDeposit; import com.iformall.domain.po.WxBillPayWay; +import com.iformall.domain.po.WxBillRent; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxPayAccountBill; @@ -272,6 +273,29 @@ public class WxBillAdvanceServiceImpl extends WxBillBaseService implements WxBil } } + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillAdvance dbBill = wxBillAdvanceMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillAdvance wxBillRent = new WxBillAdvance(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillAdvanceMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } + @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { WxBillAdvance wxBillRent = updateBillPay(dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java index 033fee138..4f406173a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -12,6 +12,7 @@ import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillDaily; import com.iformall.domain.po.WxBillPayWay; +import com.iformall.domain.po.WxBillRent; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxPayAccountBill; @@ -540,6 +541,29 @@ public class WxBillDailyServiceImpl extends WxBillBaseService implements WxBillD null, null,null,null,null,dto.getRemark(),null,null, user); } + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillDaily dbBill = wxBillDailyMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillDaily wxBillRent = new WxBillDaily(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillDailyMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } + @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { WxBillDaily wxBillRent = updateBillPay(dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java index c0c81c2cc..c7d1ce27e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java @@ -482,6 +482,29 @@ public class WxBillDepositServiceImpl extends WxBillBaseService implements WxBil null, null,null,null,null,dto.getRemark(),null,null, user); } + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillDeposit dbBill = wxBillDepositMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillDeposit wxBillRent = new WxBillDeposit(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillDepositMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } + @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { WxBillDeposit wxBillRent = updateBillPay(dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java index 2d8a1d40b..5d656197f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java @@ -492,6 +492,29 @@ public class WxBillOtherDepositServiceImpl extends WxBillBaseService implements null,null, null,null,null,dto.getRemark(), null,null,user); } + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillOtherDeposit dbBill = wxBillOtherDepositMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillOtherDeposit wxBillRent = new WxBillOtherDeposit(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillOtherDepositMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } + @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { WxBillOtherDeposit wxBillRent = updateBillPay(dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java index 65a0ed91e..4757852c6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java @@ -437,6 +437,29 @@ public class WxBillOtherServiceImpl extends WxBillBaseService implements WxBillO null, null,null,null,null,dto.getRemark(),null,null, user); } + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillOther dbBill = wxBillOtherMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillOther wxBillRent = new WxBillOther(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillOtherMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } + @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { WxBillOther wxBillRent = updateBillPay(dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java index 0fb9c4868..c486dd852 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java @@ -467,6 +467,29 @@ public class WxBillPropertyDepositServiceImpl extends WxBillBaseService implemen null, null,null,null,null,dto.getRemark(),null,null, user); } + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillPropertyDeposit dbBill = wxBillPropertyDepositMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillPropertyDeposit wxBillRent = new WxBillPropertyDeposit(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillPropertyDepositMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } + @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { WxBillPropertyDeposit wxBillRent = updateBillPay(dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java index eaf6f16a2..e2b5e5319 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java @@ -14,6 +14,7 @@ import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillPayWay; import com.iformall.domain.po.WxBillProperty; import com.iformall.domain.po.WxBillPropertyDeposit; +import com.iformall.domain.po.WxBillRent; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxPayAccountBill; @@ -580,6 +581,29 @@ public class WxBillPropertyServiceImpl extends WxBillBaseService implements WxBi null,null, null,null,null,dto.getRemark(),null,null, user); } + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillProperty dbBill = wxBillPropertyMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillProperty wxBillRent = new WxBillProperty(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillPropertyMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } + @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { WxBillProperty wxBillRent = updateBillPay(dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java index 6345633ee..8caca89ab 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java @@ -12,6 +12,7 @@ import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillPayWay; +import com.iformall.domain.po.WxBillRent; import com.iformall.domain.po.WxBillRentManage; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchantBUser; @@ -493,6 +494,29 @@ public class WxBillRentManageServiceImpl extends WxBillBaseService implements W null, null,null,null,null,dto.getRemark(),null,null, user); } + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillRentManage dbBill = wxBillRentManageMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillRentManage wxBillRent = new WxBillRentManage(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillRentManageMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } + @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { WxBillRentManage wxBillRent = updateBillPay(dto); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java index 7c176f80d..36f049183 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -688,6 +688,29 @@ public class WxBillRentServiceImpl extends WxBillBaseService implements WxBillRe this.addBillAction(EnumBillAction.NOTIFY, dto.getBillTypeValue(),dto.getId(), null, null,null,null,null,dto.getRemark(),null,null, user); } + + @Override + public void backPay(WxBillPayDTO dto, MallUserInfo user) { + WxBillRent dbBill = wxBillRentMapper.selectById(dto.getId(),dto.getTenantId()); + BigDecimal oldpay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + oldpay = new BigDecimal(dbBill.getPay()); + } + BigDecimal oldsetoff = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getSetOff())) { + oldsetoff = new BigDecimal(dbBill.getSetOff()); + } + WxBillRent wxBillRent = new WxBillRent(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); + wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + wxBillRentMapper.updateById(wxBillRent); + EnumBillAction action = EnumBillAction.RETURN; + this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); + } @Override public void updatePay(WxBillPayDTO dto, MallUserInfo user) { 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 fba1429bf..95d1f94a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -659,11 +659,93 @@ public class WxFinanceServiceImpl implements WxFinanceService { //创建预收账单? WxBillAdvance } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override public void invalidReceive(WxFinanceReceive record, MallUserInfo user) { - //收款作废 + //如果自身是预充单,则被冲抵了就不能作废 + if (record.getType().intValue() == EnumFinanceReceiveType.ADVANCE.getCode().intValue()) { + WxFinanceReceiveSetoff rsq0 = new WxFinanceReceiveSetoff(); + rsq0.updateTenantInfo(record); + rsq0.setAdvanceId(record.getId()); + rsq0.setIsDel(EnumYesOrNo.NO.getCode()); + Integer count = wxFinanceReceiveSetoffMapper.findCount(rsq0); + if (null != count && count > 0 ) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"存在关联的冲抵单,请先处理"); + } + } + //主收款单作废 + record.setStatus(EnumFinanceReceiveStatus.INVALID.getCode()); + record.setUpdateTime(new Date()); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + wxFinanceReceiveMapper.updateById(record); + //关联的账单删除 + WxFinanceReceiveBill bdel = new WxFinanceReceiveBill(); + bdel.updateTenantInfo(record); + bdel.setReceiveId(record.getId()); + bdel.setUpdateTime(new Date()); + wxFinanceReceiveBillMapper.deleteByConditon(bdel); + + //查询收款单下的账单 + WxFinanceReceiveBill frb = new WxFinanceReceiveBill(); + frb.updateTenantInfo(record); + frb.setReceiveId(record.getId()); + List receiveBills = wxFinanceReceiveBillMapper.findList(frb); + if (null != receiveBills && receiveBills.size() > 0 ) { + WxMerchant merchant = new WxMerchant(); + merchant.updateTenantInfo(record); + for (int i = 0 ; i < receiveBills.size() ; i ++) { + WxFinanceReceiveBill rb = receiveBills.get(i); + WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(rb.getBillType()), merchant, rb.getId()); + if (rb.getPayWay().equals(Constant.bill_pay_way_setoff)) { + //账单回退 + WxBillPayDTO payDto = new WxBillPayDTO(); + payDto.updateTenantInfo(record); + payDto.setId(bill.getId()); + payDto.setBillTypeValue(bill.getBillType()); + payDto.setAddpay(rb.getReceive()); + payDto.setRemark("收款单作废,系统自动退回"); + wxBillAllHelper.backPay(payDto, user); + + }else { + //预收单冲抵回退 + //查询账单关联的预充收款单,每个预售单的金额回退 + WxFinanceReceiveSetoff rsq = new WxFinanceReceiveSetoff(); + rsq.updateTenantInfo(record); + rsq.setBillId(bill.getId()); + rsq.setBillType(bill.getBillType()); + List setoffList = wxFinanceReceiveSetoffMapper.findList(rsq); + if (null != setoffList) { + for (int j = 0 ; j < setoffList.size() ; j ++) { + WxFinanceReceiveSetoff rs = setoffList.get(j); + WxFinanceReceive advance = this.getReceiveById(record, rs.getAdvanceId()); + if (advance.getStatus().intValue() != EnumFinanceReceiveStatus.NORMAL.getCode().intValue()) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"关联的预充单["+advance.getId()+"]已被锁定,无法修改"); + } + BigDecimal advanceUserMoney = new BigDecimal(0); + if (StringUtils.isNotBlank(advance.getUseMoney())) { + advanceUserMoney = new BigDecimal(advance.getUseMoney()); + } + advance.setUseMoney(advanceUserMoney.subtract(new BigDecimal(rs.getSetoff())).toPlainString()); + record.setUpdateTime(new Date()); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + wxFinanceReceiveMapper.updateById(advance); + } + } + //记录删除 + wxFinanceReceiveSetoffMapper.deleteByConditon(rsq); + } + } + } + + } + + @Override + public void redSetoffReceive(WxFinanceReceive record, MallUserInfo user) { + //红冲 } diff --git a/mallinkService/src/main/resources/mapper/WxFinanceReceiveBillMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveBillMapper.xml index c7766264a..c79789e8d 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceReceiveBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveBillMapper.xml @@ -16,11 +16,12 @@ + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`bill_id`,`bill_type`,`fees_id`, - `pay_way`,`receive_id`,`receive`,`merchant_id`,`starttime`,`endtime` + `pay_way`,`receive_id`,`receive`,`merchant_id`,`starttime`,`endtime`,`is_del` @@ -38,6 +39,7 @@ and `pay_way` = #{payWay} and `receive_id` = #{receiveId} and `merchant_id` = #{merchantId} + and `is_del` = #{isDel} and id in @@ -60,6 +62,11 @@ from wx_finance_receive_bill where id = #{id} and `tenant_id` = #{tenantId} + + update wx_finance_receive_bill set is_del = 1 ,update_time = #{updateTime} + + + diff --git a/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml index c5169cd63..c2bc68dde 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml @@ -15,11 +15,12 @@ + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`bill_id`,`bill_type`,`fees_id`, - `advance_id`,`setoff`,`merchant_id`,`starttime`,`endtime` + `advance_id`,`setoff`,`merchant_id`,`starttime`,`endtime`,`is_del` @@ -36,6 +37,7 @@ and `fees_id` = #{feesId} and `advance_id` = #{advanceId} and `merchant_id` = #{merchantId} + and `is_del` = #{isDel} and id in @@ -52,12 +54,23 @@ + + + + update wx_finance_receive_setoff set is_del = 1 ,update_time = #{updateTime} + + +