diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java index 8087f87f7..d412b944f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java @@ -25,7 +25,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; -/** +/**w * @author gongbiao */ @RestController diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java index c29c55730..1faca02ad 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java @@ -102,7 +102,7 @@ public class WxMerchantTradeDailyController extends BaseController { if (null == wxMerchantTradeDaily) { wxMerchantTradeDaily = new WxMerchantTradeDaily(); } - + wxMerchantTradeDaily.setTenantId(getTenantId()); wxMerchantTradeDaily.setSortColumns(BaseEntity.SortField.ReportDate_DESC,BaseEntity.SortField.MerchantId_DESC); wxMerchantTradeDailyService.exportData(wxMerchantTradeDaily, request, response); } diff --git a/mallinkAdmin/src/main/resources/db/migration/V201908301829__L_CONTRACT.sql b/mallinkAdmin/src/main/resources/db/migration/V201908301829__L_CONTRACT.sql new file mode 100644 index 000000000..9bc58f5c2 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201908301829__L_CONTRACT.sql @@ -0,0 +1,2 @@ +alter table wx_bill_rent +add column `join_rent_price` SMALLINT (1) NULL DEFAULT 0 COMMENT '联营租金'; diff --git a/mallinkAdmin/src/main/resources/db/migration/V201908301845__L_CONTRACT.sql b/mallinkAdmin/src/main/resources/db/migration/V201908301845__L_CONTRACT.sql new file mode 100644 index 000000000..802ea0b85 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201908301845__L_CONTRACT.sql @@ -0,0 +1,2 @@ +alter table wx_bill_rent +modify column `join_rent_price` BIGINT(20) NULL DEFAULT NULL COMMENT '联营扣点率'; \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java index 7150d717d..e19c127cf 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java @@ -106,5 +106,6 @@ public class WxBillDaily extends BaseEntity{ @io.swagger.annotations.ApiModelProperty(value = "结束时间", name = "endtime") private Date endtime; - + @io.swagger.annotations.ApiModelProperty(value = "冻结状态,0正常1冻结", name = "freeze") + private Integer freeze; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java index f6a584e60..1df316759 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java @@ -130,5 +130,6 @@ public class WxBillOther extends BaseEntity { @Transient private List> shops; - + @io.swagger.annotations.ApiModelProperty(value = "冻结状态,0正常1冻结", name = "freeze") + private Integer freeze; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java index 920fd8f06..1a70376a0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java @@ -139,5 +139,6 @@ public class WxBillOtherDeposit extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "结束时间", name = "endtime") private Date endtime; - + @io.swagger.annotations.ApiModelProperty(value = "冻结状态,0正常1冻结", name = "freeze") + private Integer freeze; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java index dc1c949c1..1ab08ec51 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java @@ -184,4 +184,7 @@ public class WxBillProperty extends BaseEntity { private String latePayMoneyBefore; @Transient private String latePayMoneyUpdate; + + @io.swagger.annotations.ApiModelProperty(value = "冻结状态,0正常1冻结", name = "freeze") + private Integer freeze; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillPropertyDeposit.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillPropertyDeposit.java index 5fdbf2bbd..42e05dfd5 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillPropertyDeposit.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillPropertyDeposit.java @@ -76,5 +76,7 @@ public class WxBillPropertyDeposit extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "支付方式:见枚举EnumBillPayWay", name = "payWay") private Integer payWay; - + + @io.swagger.annotations.ApiModelProperty(value = "冻结状态,0正常1冻结", name = "freeze") + private Integer freeze; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java index 617fe4334..1c462fa4d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java @@ -192,6 +192,12 @@ public class WxBillRent extends BaseEntity { private String latePayMoneyBefore; @Transient private String latePayMoneyUpdate; - + @Transient private String busDiscountRatio; + + @io.swagger.annotations.ApiModelProperty(value = "冻结状态,0正常1冻结", name = "freeze") + private Integer freeze; + + @io.swagger.annotations.ApiModelProperty(value = "联营租金", name = "joinRentPrice") + private Long joinRentPrice; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillRentStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillRentStatus.java index f15abadf3..a9c36a0ff 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillRentStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillRentStatus.java @@ -12,7 +12,6 @@ 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/EnumFreezeType.java b/mallinkService/src/main/java/com/iformall/enums/EnumFreezeType.java new file mode 100644 index 000000000..6cb2a46db --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFreezeType.java @@ -0,0 +1,37 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumFreezeType { + + + DEF(0, "正常"), + YES(1, "冻结"), + ; + + public static EnumFreezeType getEnum(Integer code) { + for (EnumFreezeType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumFreezeType(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/enums/EnumRentContractAdjustRatioWay.java b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractAdjustRatioWay.java index c3ce1bcd1..eb9af197e 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractAdjustRatioWay.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractAdjustRatioWay.java @@ -8,7 +8,8 @@ package com.iformall.enums; public enum EnumRentContractAdjustRatioWay { RATIO(1, "按比例"), - MONEY(2, "按金额"),; + MONEY(2, "按金额"), + CUSTOM(3, "自定义"),; public static EnumRentContractAdjustRatioWay getEnum(Integer code) { for (EnumRentContractAdjustRatioWay value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java b/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java index 9aef23a10..a2eb19513 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java @@ -4,9 +4,11 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillSettle; +import com.iformall.domain.po.WxBillSettleBill; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * @author luozukai @@ -37,4 +39,6 @@ public interface WxBillSettleService { ResultData saveOrUpdate(WxBillSettle record, MallUserInfo userInfo); void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillSettle wxBillSettle); + + void updateFreeze(List billList, int status); } 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 9c3237b05..b883e5eb6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -321,7 +321,11 @@ public class WxBillRentServiceImpl implements WxBillRentService { long newReceivePay; if(ratioVo != null){ newReceivePay = ratioVo.getPrice(); - //ratio = ratioVo.getRatio(); + //wxBillRent.setPayRatio(ratioVo.getRatio().longValue()); + //如果在跳点区间中,修改扣点率 + if(StringUtils.isNotBlank(wxRentContract.getBusDiscountRatio())){ + wxBillRent.setBusDiscountRatio(ratioVo.getUseRatio()); + } }else{ BigDecimal hundred = new BigDecimal(100); BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred); @@ -329,7 +333,7 @@ public class WxBillRentServiceImpl implements WxBillRentService { BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN); newReceivePay = price.multiply(hundred).longValue(); } - + wxBillRent.setJoinRentPrice(newReceivePay); if(newReceivePay > wxBillRent.getReceivePay()){ wxBillRent.setReceivePay(newReceivePay); } @@ -338,11 +342,6 @@ public class WxBillRentServiceImpl implements WxBillRentService { Long newPrice = newReceivePay; wxBillRent.setUpdatetime(new Date()); - //如果在跳点区间中,修改扣点率 - if(StringUtils.isNotBlank(wxRentContract.getBusDiscountRatio())){ - wxBillRent.setBusDiscountRatio(ratioVo.getUseRatio()); - wxBillRent.setPayRatio(new Long(ratio)); - } wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); if (!oldPrice.equals(newPrice)) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java index f193e2589..1c9f1096a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java @@ -7,6 +7,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.enums.EnumBillRentStatus; import com.iformall.enums.EnumBillType; +import com.iformall.enums.EnumFreezeType; import com.iformall.enums.EnumSettleBillType; import com.iformall.mapper.*; import com.iformall.service.WxBillSettleService; @@ -69,6 +70,7 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { return billSettle; } + @Override public void updateFreeze(List billList,int status){ for (WxBillSettleBill bill:billList) { if(EnumBillType.RENT.getCode().equals(bill.getBillType())) { @@ -132,8 +134,8 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { //改为冻结状态 if (record.getFlowParams() != null && record.getFlowParams().size() > 0) { - updateFreeze(record.getReceiveBillIds(),EnumBillRentStatus.FREEZE.getCode()); - updateFreeze(record.getPayBillIds(),EnumBillRentStatus.FREEZE.getCode()); + updateFreeze(record.getReceiveBillIds(), EnumFreezeType.YES.getCode()); + updateFreeze(record.getPayBillIds(),EnumFreezeType.YES.getCode()); } //启动审批流 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index 1dca2761d..bf0b130f4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -88,6 +88,8 @@ public class WxFlowServiceImpl implements WxFlowService { private WxRentContractMapper wxRentContractMapper; @Autowired private WxBillSettleMapper wxBillSettleMapper; + @Autowired + private WxBillSettleService wxBillSettleService; /** * 获取流程key @@ -278,9 +280,11 @@ public class WxFlowServiceImpl implements WxFlowService { wxBillSettle.setApplyStatus(applyStatus); wxBillSettleMapper.update(wxBillSettle); - // 审批完成,账单解冻 + //审批完成,账单解冻 if(EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue()) { - + WxBillSettle settle = wxBillSettleService.getById(businessId); + wxBillSettleService.updateFreeze(settle.getReceiveBillIds(), EnumFreezeType.DEF.getCode()); + wxBillSettleService.updateFreeze(settle.getPayBillIds(),EnumFreezeType.DEF.getCode()); } } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 5b9c0b9cd..3e6bd2e5b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -654,13 +654,13 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService long needpayAfter = 0; //同一天,算一天 if(sd.format(billTimeVo.getStartDate()).equals(sd.format(billTimeVo.getEndDate()))){ - needpayFront = getNeedPayMoney(wxPropertyContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb); + needpayFront = getNeedPayMoney(wxPropertyContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod); }else{ if(billTimeVo.getStartDate().before(endDate)){ - needpayFront = getNeedPayMoney(wxPropertyContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate,Calendar.DATE,-1), i, billTimeVoList.size(), saveDb); - needpayAfter = getNeedPayMoney(wxPropertyContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb); + needpayFront = getNeedPayMoney(wxPropertyContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate,Calendar.DATE,-1), i, billTimeVoList.size(), saveDb,dayType,receivePeriod); + needpayAfter = getNeedPayMoney(wxPropertyContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod); }else{ - needpayFront = getNeedPayMoney(wxPropertyContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb); + needpayFront = getNeedPayMoney(wxPropertyContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod); } } needpay = needpayFront+needpayAfter; @@ -679,7 +679,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //计算金额 if(!flag){ - needpay = getNeedPayMoney(wxPropertyContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb); + needpay = getNeedPayMoney(wxPropertyContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb,dayType,receivePeriod); } WxBillProperty wxBillProperty = new WxBillProperty(); @@ -723,7 +723,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return resultMap; } - public long getNeedPayMoney(WxPropertyContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb){ + public long getNeedPayMoney(WxPropertyContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb,int dayType,int receivePeriod){ long needpay; //按日 if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ @@ -739,7 +739,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //生成金额直接计算 if(!saveDb){ - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate)).longValue(); + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); return needpay; } @@ -754,7 +754,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService months++; needpay = new Double(months * priceD).longValue(); }else { - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate)).longValue(); + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); } }else if(i == 0){//第一期 if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ @@ -763,7 +763,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService months++; needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate)).longValue(); + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); } }else{ if(isFirstDay(startDate)){ @@ -773,7 +773,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate)).longValue(); + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); } } }else{//中间 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 feb187c9c..14f37a907 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1190,13 +1190,13 @@ public class WxRentContractServiceImpl implements WxRentContractService { long needpayAfter = 0; //同一天,算一天 if(sd.format(billTimeVo.getStartDate()).equals(sd.format(billTimeVo.getEndDate()))){ - needpayFront = getNeedPayMoney(wxRentContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb); + needpayFront = getNeedPayMoney(wxRentContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod); }else{ if(billTimeVo.getStartDate().before(endDate)){ - needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate,Calendar.DATE,-1), i, billTimeVoList.size(), saveDb); - needpayAfter = getNeedPayMoney(wxRentContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb); + needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate,Calendar.DATE,-1), i, billTimeVoList.size(), saveDb,dayType,receivePeriod); + needpayAfter = getNeedPayMoney(wxRentContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod); }else{ - needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb); + needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod); } } needpay = needpayFront+needpayAfter; @@ -1215,7 +1215,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //计算金额 if(!flag){ - needpay = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb); + needpay = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb,dayType,receivePeriod); } WxBillRent wxBillRent = new WxBillRent(); @@ -1259,7 +1259,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { return resultMap; } - public long getNeedPayMoney(WxRentContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb){ + public long getNeedPayMoney(WxRentContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb,int dayType,int receivePeriod){ long needpay; //按日 if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ @@ -1287,22 +1287,24 @@ public class WxRentContractServiceImpl implements WxRentContractService { //生成金额直接计算 if(!saveDb){ - needpay = new Double(getMonthNeedPay(priceD, startDate, endDate)).longValue(); + needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); return needpay; } SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM"); - SimpleDateFormat sdD = new SimpleDateFormat("d"); + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); if(i == billTimeVoListSize - 1){//最后 //判断是否满足整月 - int startInt = Integer.parseInt(sdD.format(startDate)); - int endInt = Integer.parseInt(sdD.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))); - if(startInt == endInt){ + Calendar instance = Calendar.getInstance(); + instance.setTime(startDate); + instance.add(dayType, receivePeriod); + instance.add(Calendar.DATE, -1); + if(sd.format(instance.getTime()).equals(sd.format(endDate))){ int months = getMonths(sdM.format(startDate)+"-01",sdM.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))+"-01"); needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(getMonthNeedPay(priceD, startDate, endDate)).longValue(); + needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); } }else if(i == 0){//第一期 if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ @@ -1311,7 +1313,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { months++; needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(getMonthNeedPay(priceD, startDate, endDate)).longValue(); + needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); } }else{ if(isFirstDay(startDate)){ @@ -1321,7 +1323,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(getMonthNeedPay(priceD, startDate, endDate)).longValue(); + needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); } } }else{//中间 @@ -2169,7 +2171,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { return wxRentContractMapper.getShopType(wxRentContract); } - public static double getMonthNeedPay(Double price,Date start,Date end){ + public static double getMonthNeedPay(Double price,Date start,Date end,int dayType,int receivePeriod){ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sdD = new SimpleDateFormat("d"); @@ -2192,10 +2194,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { } //判断是否满足整月 - int startInt = Integer.parseInt(sdD.format(start)); - int endInt = Integer.parseInt(sdD.format(DateUtils.getDaySet(end,Calendar.DATE,1))); - - if(startInt == endInt){ + Calendar instance = Calendar.getInstance(); + instance.setTime(start); + instance.add(dayType, receivePeriod); + instance.add(Calendar.DATE, -1); + if(sd.format(instance.getTime()).equals(sd.format(end))){ int months = getMonths(sdM.format(start)+"-01",sdM.format(DateUtils.getDaySet(end,Calendar.DATE,1))+"-01"); return (months) * price; } diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index 7a940d70c..0ff3842b0 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -643,6 +643,8 @@ select - from wx_merchant + from wx_merchant m diff --git a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml index 39ec448e1..dd4aca7f1 100644 --- a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml @@ -149,7 +149,7 @@ and rc.`id` in - select id from wx_rent_contract where tenant_id=#{tenantId} and + select id from wx_property_contract where tenant_id=#{tenantId} and json_unquote(json_extract(json_extract(rent_info,'$[*].shopId'),concat('$[',#{idx},']'))) in(select id from wx_shop where tenant_id=#{tenantId} and floor in (${floorForRule}))