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 d17232998..bf28061e4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -251,7 +251,7 @@ public class WxFinanceController extends BaseController { if (StringUtils.isNotBlank(record.getRemark())) { receive.setRemark(record.getRemark()); } - wxFinanceService.invalidReceive(receive, getUser()); + wxFinanceService.invalidReceive(receive, getUser(),"收款单作废"); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index eee05106b..e7631d18d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -27,7 +27,7 @@ public interface WxFinanceService { PageInfo receiveListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize); List createReceive(WxFinanceReceive record,MallUserInfo user); WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); - void invalidReceive(WxFinanceReceive record,MallUserInfo user); + void invalidReceive(WxFinanceReceive record,MallUserInfo user,String remark); void redSetoffReceive(WxFinanceReceive record,MallUserInfo user); //预收款 List calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo 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 ad0d641e7..07d54434d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAdvanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAdvanceServiceImpl.java @@ -290,6 +290,11 @@ public class WxBillAdvanceServiceImpl extends WxBillBaseService implements WxBil wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillAdvanceMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 4f406173a..f86dc7a41 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -558,6 +558,11 @@ public class WxBillDailyServiceImpl extends WxBillBaseService implements WxBillD wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillDailyMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 c7d1ce27e..bf9845689 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java @@ -499,6 +499,11 @@ public class WxBillDepositServiceImpl extends WxBillBaseService implements WxBil wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillDepositMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 5d656197f..9250695ae 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java @@ -509,6 +509,11 @@ public class WxBillOtherDepositServiceImpl extends WxBillBaseService implements wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillOtherDepositMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 4757852c6..415efde08 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java @@ -454,6 +454,11 @@ public class WxBillOtherServiceImpl extends WxBillBaseService implements WxBillO wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillOtherMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 c486dd852..0a4a0b247 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java @@ -484,6 +484,11 @@ public class WxBillPropertyDepositServiceImpl extends WxBillBaseService implemen wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillPropertyDepositMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 e2b5e5319..e606bc983 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java @@ -598,6 +598,11 @@ public class WxBillPropertyServiceImpl extends WxBillBaseService implements WxBi wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillPropertyMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 8caca89ab..76a9ce1ca 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java @@ -511,6 +511,11 @@ public class WxBillRentManageServiceImpl extends WxBillBaseService implements W wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillRentManageMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 36f049183..6c60c3b2d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -706,6 +706,11 @@ public class WxBillRentServiceImpl extends WxBillBaseService implements WxBillRe wxBillRent.setUpdatetime(new Date()); wxBillRent.setPay(oldpay.subtract(new BigDecimal(dto.getAddpay())).toPlainString()); wxBillRent.setSetOff(oldsetoff.subtract(new BigDecimal(dto.getSetOff())).toPlainString()); + if (dbBill.getStatus().intValue() == EnumBillStatus.PAID.getCode().intValue()) { + if (new BigDecimal(dbBill.getOwe()).compareTo(new BigDecimal(0)) > 0 ) { + wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); + } + } wxBillRentMapper.updateById(wxBillRent); EnumBillAction action = EnumBillAction.RETURN; this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), 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 95d1f94a2..bc0ae0a02 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -661,7 +661,11 @@ public class WxFinanceServiceImpl implements WxFinanceService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override - public void invalidReceive(WxFinanceReceive record, MallUserInfo user) { + public void invalidReceive(WxFinanceReceive record, MallUserInfo user,String remark) { + invalidReceive(record, user, false); + } + + public void invalidReceive(WxFinanceReceive record, MallUserInfo user,boolean isRedSetoff) { //如果自身是预充单,则被冲抵了就不能作废 if (record.getType().intValue() == EnumFinanceReceiveType.ADVANCE.getCode().intValue()) { WxFinanceReceiveSetoff rsq0 = new WxFinanceReceiveSetoff(); @@ -673,7 +677,6 @@ public class WxFinanceServiceImpl implements WxFinanceService { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"存在关联的冲抵单,请先处理"); } } - //主收款单作废 record.setStatus(EnumFinanceReceiveStatus.INVALID.getCode()); record.setUpdateTime(new Date()); @@ -706,7 +709,11 @@ public class WxFinanceServiceImpl implements WxFinanceService { payDto.setId(bill.getId()); payDto.setBillTypeValue(bill.getBillType()); payDto.setAddpay(rb.getReceive()); - payDto.setRemark("收款单作废,系统自动退回"); + if (isRedSetoff) { + payDto.setRemark("收款单红冲,自动回退"); + }else { + payDto.setRemark("收款单作废,自动回退"); + } wxBillAllHelper.backPay(payDto, user); }else { @@ -740,12 +747,19 @@ public class WxFinanceServiceImpl implements WxFinanceService { } } } - } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override public void redSetoffReceive(WxFinanceReceive record, MallUserInfo user) { - //红冲 + invalidReceive(record, user , true); + //新增一个红冲,金额是负数 + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + record.setReceiveMoney("-"+record.getReceiveMoney()); + record.setSetOffMoney("-"+record.getSetOffMoney()); + record.setStatus(EnumFinanceReceiveStatus.RED_SETOFF.getCode()); + wxFinanceReceiveMapper.insert(record); }