diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java index fcad811c4..8e56f556a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java @@ -74,7 +74,7 @@ public class WxBillSettleController extends BaseController { public ResultData settle(@RequestBody WxBillSettleRecord wxBillSettleRecord) { logger.debug("[" + getIpAddr() + "] WxBillSettleController::settle"); wxBillSettleRecord.setTenantId(getTenantId()); - return wxBillSettleRecordService.saveOrUpdate(wxBillSettleRecord,getUser()); + return wxBillSettleRecordService.saveOrUpdate(wxBillSettleRecord); } @GetMapping("exportSettle") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillTypeParam.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillTypeParam.java index fcf76a503..a7cbb5806 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillTypeParam.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillTypeParam.java @@ -15,7 +15,9 @@ public enum EnumBillTypeParam { POWER(6, "电费"), ROUTINE(7, "其他费用"), ATHER_DEPOSIT(8, "其他押金"), - AIR_CONDITIONING(9, "空调费") + AIR_CONDITIONING(9, "空调费"), + + SETTLE(10, "结算单") ; public static EnumBillTypeParam getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumSettleRecordWay.java b/mallinkService/src/main/java/com/iformall/enums/EnumSettleRecordWay.java new file mode 100644 index 000000000..a67482e87 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumSettleRecordWay.java @@ -0,0 +1,39 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumSettleRecordWay { + //清算方式 1现金2支付宝3微信4银行卡转账5其他 + M(1, "现金"), + ZFB(2, "支付宝"), + WEBCAT(3, "微信"), + CARD(4, "银行卡转账"), + OTHER(5, "其他"), + ; + + public static EnumSettleRecordWay getEnum(Integer code) { + for (EnumSettleRecordWay value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumSettleRecordWay(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillSettleRecordService.java b/mallinkService/src/main/java/com/iformall/service/WxBillSettleRecordService.java index f87d05a1a..4ef88a9b5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillSettleRecordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillSettleRecordService.java @@ -23,6 +23,6 @@ public interface WxBillSettleRecordService { * * @param record */ - ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo); + ResultData saveOrUpdate(WxBillSettleRecord record); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index e2e69f20f..2c36f5030 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -117,6 +117,9 @@ public class WxBillAllServiceImpl implements WxBillAllService { @Autowired StringRedisTemplate stringRedisTemplate; + @Autowired + WxBillSettleRecordService wxBillSettleRecordService; + @Override public Map listAsPage(WxBillAll record, Integer pageIndex, Integer pageSize) { //更新各账单状态 @@ -241,7 +244,18 @@ public class WxBillAllServiceImpl implements WxBillAllService { if (wxBillOtherDeposit != null && !wxBillOtherDeposit.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { updateBillOtherDeposit(bill); } - } else { + } else if (billTypeValue == EnumBillTypeParam.SETTLE.getCode().intValue()) { + logger.info("更新结算单"); + WxBillSettleRecord settleRecord = new WxBillSettleRecord(); + settleRecord.setSettleId((Long)bill.get("id")); + settleRecord.setSettleMoney((Long) bill.get("owe")); + settleRecord.setSettleTime(new Date()); + settleRecord.setSettleWay(EnumSettleRecordWay.WEBCAT.getCode()); + + 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); + }else{ logger.info("账单类型不存在"); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java index 176d522e6..bc9109a0f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java @@ -26,7 +26,7 @@ public class WxBillSettleRecordServiceImpl implements WxBillSettleRecordService } @Override - public ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo) { + public ResultData saveOrUpdate(WxBillSettleRecord record) { final IdWorker idWorker = IdWorker.get(); if (record.getId() == null) { record.setId(idWorker.nextId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 3649892e2..65d26fd38 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1100,6 +1100,16 @@ public class WxRentContractServiceImpl implements WxRentContractService { } } else { for (int i = 1; i < size; i++) { + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { + if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { + priceArrs[i] = new BigDecimal(integers.get(i)).multiply(new BigDecimal(12)).setScale(0, RoundingMode.HALF_EVEN).longValue(); + continue; + } + if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { + priceArrs[i] = new BigDecimal(integers.get(i)).multiply(new BigDecimal(wxRentContract.getReceivePeriod())).setScale(0, RoundingMode.HALF_EVEN).longValue(); + continue; + } + } priceArrs[i] = new BigDecimal(integers.get(i)).setScale(0, RoundingMode.HALF_EVEN).longValue(); } } @@ -1294,15 +1304,13 @@ public class WxRentContractServiceImpl implements WxRentContractService { }else{ Double priceD = new Double(price); if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType())) { - if (!EnumRentContractAdjustRatioWay.CUSTOM.getCode().equals(wxRentContract.getAdjustRatioWay())) { - //设置跳点率为年周期 price不变 - if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { - return priceD.longValue(); - } - //年或者设置跳点率为年周期 除12 - if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { - priceD = new Double(price) / 12; - } + //设置跳点率为年周期 price不变 + if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { + return priceD.longValue(); + } + //年或者设置跳点率为年周期 除12 + if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { + priceD = new Double(price) / 12; } }else{ //年 除12