| @@ -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(); | |||
| } | |||
| @@ -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) | |||
| @@ -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; | |||
| } | |||
| @@ -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()) { | |||
| @@ -12,5 +12,7 @@ public interface WxFinanceReceiveBillMapper extends CommonMapper<WxFinanceReceiv | |||
| List<WxFinanceReceiveBill> findList(WxFinanceReceiveBill wxBillRent); | |||
| WxFinanceReceiveBill selectById(@Param("id")Long id,@Param("tenantId")String tenantId); | |||
| void deleteByConditon(WxFinanceReceiveBill wxBillRent); | |||
| } | |||
| @@ -10,7 +10,10 @@ import java.util.List; | |||
| public interface WxFinanceReceiveSetoffMapper extends CommonMapper<WxFinanceReceiveSetoff, Long> { | |||
| List<WxFinanceReceiveSetoff> findList(WxFinanceReceiveSetoff wxBillRent); | |||
| Integer findCount(WxFinanceReceiveSetoff wxBillRent); | |||
| WxFinanceReceiveSetoff selectById(@Param("id")Long id,@Param("tenantId")String tenantId); | |||
| void deleteByConditon(WxFinanceReceiveSetoff wxBillRent); | |||
| } | |||
| @@ -55,7 +55,7 @@ public interface WxBillAdvanceService { | |||
| List<Long> 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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -28,6 +28,7 @@ public interface WxFinanceService { | |||
| List<WxBillBaseEntity> createReceive(WxFinanceReceive record,MallUserInfo user); | |||
| WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); | |||
| void invalidReceive(WxFinanceReceive record,MallUserInfo user); | |||
| void redSetoffReceive(WxFinanceReceive record,MallUserInfo user); | |||
| //预收款 | |||
| List<WxBillBaseEntity> calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user); | |||
| FinanceBillSetoffSum getBillSetoffSum(WxFinanceReceive record); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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) { | |||
| @@ -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<WxFinanceReceiveBill> 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<WxFinanceReceiveSetoff> 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) { | |||
| //红冲 | |||
| } | |||
| @@ -16,11 +16,12 @@ | |||
| <result column="merchant_id" jdbcType="BIGINT" property="merchantId"/> | |||
| <result column="starttime" jdbcType="TIMESTAMP" property="starttime"/> | |||
| <result column="endtime" jdbcType="TIMESTAMP" property="endtime"/> | |||
| <result column="is_del" jdbcType="INTEGER" property="isDel"/> | |||
| </resultMap> | |||
| <sql id="allColumns"> | |||
| `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` | |||
| </sql> | |||
| <sql id="dynamicWhereConditions"> | |||
| @@ -38,6 +39,7 @@ | |||
| <if test=" null != payWay ">and `pay_way` = #{payWay}</if> | |||
| <if test=" null != receiveId ">and `receive_id` = #{receiveId}</if> | |||
| <if test=" null != merchantId ">and `merchant_id` = #{merchantId}</if> | |||
| <if test=" null != isDel ">and `is_del` = #{isDel}</if> | |||
| <if test=" null != ids "> | |||
| and id in | |||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||
| @@ -60,6 +62,11 @@ | |||
| from wx_finance_receive_bill where id = #{id} and `tenant_id` = #{tenantId} | |||
| </select> | |||
| <update id = "deleteByConditon" parameterType="com.iformall.domain.po.WxFinanceReceiveBill"> | |||
| update wx_finance_receive_bill set is_del = 1 ,update_time = #{updateTime} | |||
| <include refid="dynamicWhereConditions"/> | |||
| </update> | |||
| </mapper> | |||
| @@ -15,11 +15,12 @@ | |||
| <result column="merchant_id" jdbcType="BIGINT" property="merchantId"/> | |||
| <result column="starttime" jdbcType="TIMESTAMP" property="starttime"/> | |||
| <result column="endtime" jdbcType="TIMESTAMP" property="endtime"/> | |||
| <result column="is_del" jdbcType="INTEGER" property="isDel"/> | |||
| </resultMap> | |||
| <sql id="allColumns"> | |||
| `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` | |||
| </sql> | |||
| <sql id="dynamicWhereConditions"> | |||
| @@ -36,6 +37,7 @@ | |||
| <if test=" null != feesId ">and `fees_id` = #{feesId}</if> | |||
| <if test=" null != advanceId ">and `advance_id` = #{advanceId}</if> | |||
| <if test=" null != merchantId ">and `merchant_id` = #{merchantId}</if> | |||
| <if test=" null != isDel ">and `is_del` = #{isDel}</if> | |||
| <if test=" null != ids "> | |||
| and id in | |||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||
| @@ -52,12 +54,23 @@ | |||
| <include refid="dynamicWhereConditions"/> | |||
| </select> | |||
| <select id="findCount" parameterType="com.iformall.domain.po.WxFinanceReceiveSetoff" resultType="Integer"> | |||
| select count(1) | |||
| from wx_finance_receive_setoff | |||
| <include refid="dynamicWhereConditions"/> | |||
| </select> | |||
| <select id="selectById" parameterType="HashMap" resultMap="BaseResultMap"> | |||
| select | |||
| <include refid="allColumns"/> | |||
| from wx_finance_receive_setoff where id = #{id} and `tenant_id` = #{tenantId} | |||
| </select> | |||
| <update id = "deleteByConditon" parameterType="com.iformall.domain.po.WxFinanceReceiveSetoff"> | |||
| update wx_finance_receive_setoff set is_del = 1 ,update_time = #{updateTime} | |||
| <include refid="dynamicWhereConditions"/> | |||
| </update> | |||
| </mapper> | |||