diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillRentStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillRentStatus.java index a9c36a0ff..f15abadf3 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillRentStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillRentStatus.java @@ -12,6 +12,7 @@ public enum EnumBillRentStatus { NOT_EXPIRED(4,"未到期"), RETURN(5, "已退还"), INVALID(6, "失效"), + FREEZE(7, "冻结(结算单审核过程中)"), ; public static EnumBillRentStatus getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillType.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillType.java index fc7874cc6..35a51cd87 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillType.java @@ -13,7 +13,8 @@ public enum EnumBillType { WATER(4, "水费"), POWER(5, "电费"), ROUTINE(6, "其他"), - AIR_CONDITIONING(7, "空调费") + AIR_CONDITIONING(7, "空调费"), + OTHER_DEPOSIT(8, "其他押金") ; public static EnumBillType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillSettleBillMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillSettleBillMapper.java index 88a84c11b..59559616a 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillSettleBillMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillSettleBillMapper.java @@ -1,6 +1,7 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxBillSettle; import com.iformall.domain.po.WxBillSettleBill; import java.util.List; @@ -13,5 +14,5 @@ public interface WxBillSettleBillMapper extends CommonMapper listAsPage(WxBillSettle record, Integer pageIndex, Integer pageSize) { @@ -36,16 +55,73 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { return wxBillSettleMapper.selectByPrimaryKey(id); } + public void updateFreeze(List billList){ + for (WxBillSettleBill bill:billList) { + if(EnumBillType.RENT.getCode().equals(bill.getBillType())) { + WxBillRent wxBillRent = new WxBillRent(); + wxBillRent.setId(bill.getBillId()); + wxBillRent.setStatus(EnumBillRentStatus.FREEZE.getCode()); + wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); + }else if(EnumBillType.DEPOSIT.getCode().equals(bill.getBillType())) { + WxBillDeposit wxBillRent = new WxBillDeposit(); + wxBillRent.setId(bill.getBillId()); + wxBillRent.setStatus(EnumBillRentStatus.FREEZE.getCode()); + wxBillDepositMapper.updateByPrimaryKeySelective(wxBillRent); + }else if(EnumBillType.PROPERTY.getCode().equals(bill.getBillType())) { + WxBillProperty wxBillRent = new WxBillProperty(); + wxBillRent.setId(bill.getBillId()); + wxBillRent.setStatus(EnumBillRentStatus.FREEZE.getCode()); + wxBillPropertyMapper.updateByPrimaryKeySelective(wxBillRent); + + WxBillPropertyDeposit propertyDeposit = new WxBillPropertyDeposit(); + propertyDeposit.setId(bill.getBillId()); + propertyDeposit.setStatus(EnumBillRentStatus.FREEZE.getCode()); + wxBillPropertyDepositMapper.updateByPrimaryKeySelective(propertyDeposit); + }else if(EnumBillType.ROUTINE.getCode().equals(bill.getBillType())) { + WxBillOther wxBillRent = new WxBillOther(); + wxBillRent.setId(bill.getBillId()); + wxBillRent.setStatus(EnumBillRentStatus.FREEZE.getCode()); + wxBillOtherMapper.updateByPrimaryKeySelective(wxBillRent); + }else if(EnumBillType.OTHER_DEPOSIT.getCode().equals(bill.getBillType())) { + WxBillOtherDeposit wxBillRent = new WxBillOtherDeposit(); + wxBillRent.setId(bill.getBillId()); + wxBillRent.setStatus(EnumBillRentStatus.FREEZE.getCode()); + wxBillOtherDepositMapper.updateByPrimaryKeySelective(wxBillRent); + }else{ + WxBillDaily wxBillRent = new WxBillDaily(); + wxBillRent.setId(bill.getBillId()); + wxBillRent.setStatus(EnumBillRentStatus.FREEZE.getCode()); + wxBillDailyMapper.updateByPrimaryKeySelective(wxBillRent); + } + } + } + @Override @Transactional public ResultData saveOrUpdate(WxBillSettle record, MallUserInfo userInfo) { + final IdWorker idWorker = IdWorker.get(); if (record.getId() == null) { - final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); wxBillSettleMapper.insertSelective(record); - } else { + }else{ wxBillSettleMapper.updateByPrimaryKeySelective(record); } + + wxBillSettleBillMapper.delBySettleId(record); + //保存中间表 + for (WxBillSettleBill bill:record.getReceiveBillIds()) { + bill.setId(idWorker.nextId()); + bill.setSettleId(record.getId()); + bill.setTenantId(record.getTenantId()); + wxBillSettleBillMapper.insertSelective(bill); + } + + //改为冻结状态 + if (record.getFlowParams() != null && record.getFlowParams().size() > 0) { + updateFreeze(record.getReceiveBillIds()); + updateFreeze(record.getPayBillIds()); + } + //启动审批流 record.getFlowParams().put("businessId",record.getId()); if (record.getFlowParams() != null && record.getFlowParams().size() > 0) { diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml index 1bd2b02d1..0296dbf5c 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml @@ -41,6 +41,9 @@ + + delete from wx_bill_settle_bill where settle_id = #{id} +