| @@ -77,7 +77,7 @@ public class WxBillSettleController extends BaseController { | |||
| public ResultData settle(@RequestBody WxBillSettleRecord wxBillSettleRecord) { | |||
| logger.debug("[" + getIpAddr() + "] WxBillSettleController::settle"); | |||
| wxBillSettleRecord.setTenantId(getTenantId()); | |||
| return wxBillSettleRecordService.saveOrUpdate(wxBillSettleRecord); | |||
| return wxBillSettleRecordService.saveOrUpdate(wxBillSettleRecord,getUser(),null); | |||
| } | |||
| @GetMapping("exportSettle") | |||
| @@ -23,6 +23,6 @@ public interface WxBillSettleRecordService { | |||
| * | |||
| * @param record | |||
| */ | |||
| ResultData saveOrUpdate(WxBillSettleRecord record); | |||
| ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo,Long bUserId); | |||
| } | |||
| @@ -176,7 +176,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| wxBillAll.setBillTypeValue(EnumBillTypeParam.AIR_CONDITIONING.getCode()); | |||
| }else if (wxBillAll.getBillTypeValue().equals(EnumBillType.SETTLE.getCode())) { | |||
| wxBillAll.setBillTypeValue(EnumBillTypeParam.SETTLE.getCode()); | |||
| } else { | |||
| } else { | |||
| logger.info("账单不存在"); | |||
| return new ResultData(ErrorCode.BILL_ROUTINE_IS_NOT_FOUND); | |||
| } | |||
| @@ -259,7 +259,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| BigDecimal money = new BigDecimal(settleRecord.getSettleMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); | |||
| settleRecord.setDetail(EnumSettleRecordWay.getEnum(settleRecord.getSettleWay()).getMessage()+"收款"+money.toString()+"元"); | |||
| wxBillSettleRecordService.saveOrUpdate(settleRecord); | |||
| wxBillSettleRecordService.saveOrUpdate(settleRecord,null,(Long)bill.get("userId")); | |||
| }else{ | |||
| logger.info("账单类型不存在"); | |||
| } | |||
| @@ -6,11 +6,13 @@ import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.MallUserInfo; | |||
| import com.iformall.domain.po.WxBillSettle; | |||
| import com.iformall.domain.po.WxBillSettleRecord; | |||
| import com.iformall.domain.po.WxMerchantBUser; | |||
| import com.iformall.enums.EnumSettleRecordWay; | |||
| import com.iformall.enums.EnumSettleStatus; | |||
| import com.iformall.enums.EnumSettleWay; | |||
| import com.iformall.mapper.WxBillSettleMapper; | |||
| import com.iformall.mapper.WxBillSettleRecordMapper; | |||
| import com.iformall.mapper.WxMerchantBUserMapper; | |||
| import com.iformall.service.WxBillSettleRecordService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| @@ -27,6 +29,8 @@ public class WxBillSettleRecordServiceImpl implements WxBillSettleRecordService | |||
| private WxBillSettleRecordMapper wxBillSettleRecordMapper; | |||
| @Autowired | |||
| private WxBillSettleMapper wxBillSettleMapper; | |||
| @Autowired | |||
| private WxMerchantBUserMapper wxMerchantBUserMapper; | |||
| @Override | |||
| public PageInfo<WxBillSettleRecord> listAsPage(WxBillSettleRecord record, Integer pageIndex, Integer pageSize) { | |||
| @@ -34,7 +38,7 @@ public class WxBillSettleRecordServiceImpl implements WxBillSettleRecordService | |||
| } | |||
| @Override | |||
| public ResultData saveOrUpdate(WxBillSettleRecord record) { | |||
| public ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo,Long bUserId) { | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| if (record.getId() == null) { | |||
| record.setId(idWorker.nextId()); | |||
| @@ -52,6 +56,13 @@ public class WxBillSettleRecordServiceImpl implements WxBillSettleRecordService | |||
| String str = EnumSettleRecordWay.getEnum(record.getSettleWay()).getMessage()+"收款"+new BigDecimal(record.getSettleMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)+"元"; | |||
| record.setDetail(str); | |||
| if(mallUserInfo != null) { | |||
| record.setUserid(mallUserInfo.getId()); | |||
| record.setUserName(mallUserInfo.getName()); | |||
| }else if(bUserId != null){ | |||
| WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectByPrimaryKey(bUserId); | |||
| record.setUserName(wxMerchantBUser.getName()); | |||
| } | |||
| wxBillSettleRecordMapper.insertSelective(record); | |||
| }else{ | |||
| wxBillSettleRecordMapper.updateByPrimaryKeySelective(record); | |||
| @@ -137,6 +137,7 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { | |||
| @Override | |||
| public void updateFreezeOrStatus(List<WxBillSettleBill> billList,Integer freezeStatus,Integer status){ | |||
| //1租金2押金3物业4日常费用6其他8补贴 | |||
| for (WxBillSettleBill bill:billList) { | |||
| if(EnumBillType.RENT.getCode().equals(bill.getBillType())) { | |||
| WxBillRent wxBillRent = new WxBillRent(); | |||
| @@ -174,6 +175,12 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { | |||
| if(freezeStatus != null) wxBillRent.setFreeze(freezeStatus); | |||
| if(status != null) wxBillRent.setStatus(status); | |||
| wxBillOtherDepositMapper.updateByPrimaryKeySelective(wxBillRent); | |||
| WxMerchantSubsidy wxMerchantSubsidy = new WxMerchantSubsidy(); | |||
| wxMerchantSubsidy.setId(bill.getBillId()); | |||
| if(freezeStatus != null) wxMerchantSubsidy.setFreeze(freezeStatus); | |||
| if(status != null) wxMerchantSubsidy.setStatus(status); | |||
| wxMerchantSubsidyMapper.updateByPrimaryKeySelective(wxMerchantSubsidy); | |||
| }else if(EnumBillType.OTHER_DEPOSIT.getCode().equals(bill.getBillType())) { | |||
| WxBillOtherDeposit wxBillRent = new WxBillOtherDeposit(); | |||
| wxBillRent.setId(bill.getBillId()); | |||
| @@ -186,12 +193,6 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { | |||
| if(freezeStatus != null) wxBillRent.setFreeze(freezeStatus); | |||
| if(status != null) wxBillRent.setStatus(status); | |||
| wxBillDailyMapper.updateByPrimaryKeySelective(wxBillRent); | |||
| WxMerchantSubsidy wxMerchantSubsidy = new WxMerchantSubsidy(); | |||
| wxMerchantSubsidy.setId(bill.getBillId()); | |||
| if(freezeStatus != null) wxBillRent.setFreeze(freezeStatus); | |||
| if(status != null) wxBillRent.setStatus(status); | |||
| wxMerchantSubsidyMapper.updateByPrimaryKeySelective(wxMerchantSubsidy); | |||
| } | |||
| } | |||
| } | |||
| @@ -221,7 +221,7 @@ public class WxFlowServiceImpl implements WxFlowService { | |||
| wxBillAll.setNewPrice(newPrice); | |||
| } | |||
| wxBillAllService.updateReceivePay(wxBillAll, user); | |||
| }else{ | |||
| }else if(EnumRentContractAppStatus.APPLYING.getCode().intValue() == applyStatus.intValue()) { | |||
| //账单修改金额,冻结 | |||
| List<WxBillSettleBill> billList = new ArrayList<>(); | |||
| WxBillSettleBill settleBill = new WxBillSettleBill(); | |||
| @@ -229,6 +229,14 @@ public class WxFlowServiceImpl implements WxFlowService { | |||
| settleBill.setBillId(businessId); | |||
| billList.add(settleBill); | |||
| wxBillSettleService.updateFreezeOrStatus(billList,EnumFreezeType.YES.getCode(),null); | |||
| }else if(EnumRentContractAppStatus.SETBACK.getCode().intValue() == applyStatus.intValue() || EnumRentContractAppStatus.REJECT.getCode().intValue() == applyStatus.intValue()) { | |||
| //账单修改金额,解冻 | |||
| List<WxBillSettleBill> billList = new ArrayList<>(); | |||
| WxBillSettleBill settleBill = new WxBillSettleBill(); | |||
| settleBill.setBillType(billType); | |||
| settleBill.setBillId(businessId); | |||
| billList.add(settleBill); | |||
| wxBillSettleService.updateFreezeOrStatus(billList,EnumFreezeType.DEF.getCode(),null); | |||
| } | |||
| } else if (EnumFlowKey.NEW_COUPON_UPLINE.getCode().equals(flowType) | |||
| || EnumFlowKey.NEW_CARD_UPLINE.getCode().equals(flowType) | |||
| @@ -286,14 +294,19 @@ public class WxFlowServiceImpl implements WxFlowService { | |||
| WxBillSettle wxBillSettle = new WxBillSettle(); | |||
| wxBillSettle.setId(businessId); | |||
| wxBillSettle.setApplyStatus(applyStatus); | |||
| wxBillSettleMapper.updateByPrimaryKeySelective(wxBillSettle); | |||
| //审批完成,账单解冻 | |||
| WxBillSettle settle = wxBillSettleService.getById(businessId); | |||
| if(EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue()) { | |||
| WxBillSettle settle = wxBillSettleService.getById(businessId); | |||
| wxBillSettle.setStatus(EnumSettleStatus.NOT_FINISH.getCode()); | |||
| wxBillSettleService.updateFreezeOrStatus(settle.getReceiveBillIds(), EnumFreezeType.DEF.getCode(),EnumBillRentStatus.PAID.getCode()); | |||
| wxBillSettleService.updateFreezeOrStatus(settle.getPayBillIds(),EnumFreezeType.DEF.getCode(),EnumBillRentStatus.PAID.getCode()); | |||
| }else if(EnumRentContractAppStatus.SETBACK.getCode().intValue() == applyStatus.intValue() || EnumRentContractAppStatus.REJECT.getCode().intValue() == applyStatus.intValue()) { | |||
| //解冻 | |||
| wxBillSettleService.updateFreezeOrStatus(settle.getReceiveBillIds(), EnumFreezeType.DEF.getCode(),EnumBillRentStatus.PAID.getCode()); | |||
| wxBillSettleService.updateFreezeOrStatus(settle.getPayBillIds(),EnumFreezeType.DEF.getCode(),EnumBillRentStatus.PAID.getCode()); | |||
| } | |||
| wxBillSettleMapper.updateByPrimaryKeySelective(wxBillSettle); | |||
| } | |||
| } | |||
| @@ -35,7 +35,7 @@ | |||
| </if> | |||
| <if test=" null != settleNumber and settleNumber !='' ">and tt.`settle_number` = #{settleNumber}</if> | |||
| <if test=" null != status and status !=''">and tt.`status` = #{status}</if> | |||
| <if test=" null != applyStatus and applyStatus !=''">and tt.`apply_status` = #{applyStatus}</if> | |||
| <if test=" null != applyStatus">and tt.`apply_status` = #{applyStatus}</if> | |||
| <if test="0 == direction"> | |||
| and (tt.receiveMoney-tt.payMoney- | |||
| (select IFNULL(sum(settle_money),0) from wx_bill_settle_record where settle_id = tt.id) | |||