diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java index 168262894..46abf0ec9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java @@ -66,6 +66,9 @@ public class WxPropertyContract extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="付款周期",name="receivePeriod") private Integer receivePeriod; + + @io.swagger.annotations.ApiModelProperty(value = "付款周期单位EnumContractReceivePeriodUnit", name = "receivePeriodUnit") + private Integer receivePeriodUnit; @io.swagger.annotations.ApiModelProperty(value="合同文件路径",name="filepath") private String filepath; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index 43c05523e..8d1ec18a4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -236,6 +236,8 @@ public class WxRentContract extends TenantEntity { private Date signDate; @io.swagger.annotations.ApiModelProperty(value = "付款周期", name = "receivePeriod") private Integer receivePeriod; + @io.swagger.annotations.ApiModelProperty(value = "付款周期单位EnumContractReceivePeriodUnit", name = "receivePeriodUnit") + private Integer receivePeriodUnit; @io.swagger.annotations.ApiModelProperty(value = "合同文件路径", name = "filepath") private String filepath; @io.swagger.annotations.ApiModelProperty(value = "合同进度状态1待签约2已签约未记租3计租中4提前终止5合同到期", name = "status") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumContractReceivePeriodUnit.java b/mallinkService/src/main/java/com/iformall/enums/EnumContractReceivePeriodUnit.java new file mode 100644 index 000000000..5e237147d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumContractReceivePeriodUnit.java @@ -0,0 +1,74 @@ +package com.iformall.enums; + +import java.util.Calendar; +import java.util.Date; + +import com.iformall.utils.DateUtils; + +/** + */ +public enum EnumContractReceivePeriodUnit { + + MONTH(1, "月"), + QUARTER(2, "自然季度"); + + public static EnumContractReceivePeriodUnit getEnum(Integer code) { + for (EnumContractReceivePeriodUnit value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumContractReceivePeriodUnit(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } + + //截止到后几个季度的时间 + public static Calendar getAfterCalendarDay(Calendar instance,int period,int unit) { + if (unit == MONTH.getCode().intValue()) { + instance.add(Calendar.MONTH, period); + instance.add(Calendar.DATE, -1); + //几个季度之后 + }else if (unit == QUARTER.getCode().intValue()) { + instance = DateUtils.getAfterQuaterStartDay(instance.getTime(), period); + instance.add(Calendar.SECOND, -1); + } + return instance; + } + + //截止到后几个季度的时间,自然天 + public static Date getAfterCalendarNarDay(Date date,int period,int unit) { + if (unit == MONTH.getCode().intValue()) { + if (period <= 1) { + return DateUtils.getLastDayForMonth(date); + }else { + Date firstDay = DateUtils.getFirstDayForCurrMonth(date); + Calendar instance = Calendar.getInstance(); + instance.setTime(firstDay); + instance.add(Calendar.MONTH, period); + instance.add(Calendar.DAY_OF_MONTH, -1); + } + //几个季度之后 + }else if (unit == QUARTER.getCode().intValue()) { + Calendar instance = DateUtils.getAfterQuaterStartDay(date, period); + instance.add(Calendar.SECOND, -1); + return instance.getTime(); + } + return date; + } + +} 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 744117034..593336c99 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -306,19 +306,24 @@ public class WxBillRentServiceImpl extends WxBillBaseService implements WxBillRe if(EnumBusRatioTime.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())){ if(startInt == endInt && months == 12){ //刚好1年 - ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0); + ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(), + wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0,null); }else{ - ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0); + ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(), + wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0,null); } }else if(EnumBusRatioTime.MONTH.getCode().equals(wxRentContract.getBusDiscountTime())){ if(startInt == endInt && months == 1){ //刚好1个月 - ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0); + ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(), + wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0,null); }else{ - ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0); + ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(), + wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0,null); } }else if(EnumBusRatioTime.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())){ - ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod()); + ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(), + EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod(),wxRentContract.getReceivePeriodUnit()); } } } 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 021db39ab..75eb94b9a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -277,7 +277,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService bill.setIsDel(EnumDelStatus.NOT_DEL.getCode()); //bill.setShopId(record.getShopId()); bill.setExpiredDay(0L); - setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); + //setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); if (bill.getReceivePay().equals("0")) { bill.setStatus(EnumBillStatus.PAID.getCode()); bill.setPayDate(date); @@ -629,7 +629,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } yearList.add(startDate); } - Map resultMap = buildRent(receivePeriod, priceArr, yearList, Calendar.MONTH, wxPropertyContract, userId, wxMerchant, billcount, isPreview, shopInfo,saveDb); + Map resultMap = buildRent(receivePeriod, priceArr, yearList, wxPropertyContract.getReceivePeriodUnit(), wxPropertyContract, userId, wxMerchant, billcount, isPreview, shopInfo,saveDb); List billRentList = (List)resultMap.get("billList"); resultList.addAll(billRentList); return resultList; @@ -725,7 +725,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //截止收租日在当前时间之前 Date date = new Date(); - setExpiredDay(wxBillProperty,dayType,receivePeriod); + //setExpiredDay(wxBillProperty,dayType,receivePeriod); wxBillProperty.updateTenantInfo(wxPropertyContract); wxBillProperty.setIsDel(0); wxBillProperty.setMerchantId(wxPropertyContract.getMerchantId()); @@ -826,27 +826,27 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return needpay; } - public void setExpiredDay(WxBillProperty wxBillProperty,int dayType, int receivePeriod){ - Date date = new Date(); - wxBillProperty.setExpiredDay(0L); - if (wxBillProperty.getReceiveDate().before(date)) { - long day = (date.getTime() - wxBillProperty.getReceiveDate().getTime()) / (24 * 60 * 60 * 1000); - wxBillProperty.setStatus(EnumBillStatus.NOT_PAID.getCode()); - if (day > 0) { - wxBillProperty.setExpiredDay(day); - } - } else {//截止收租日在当前时间之后 - Calendar now = Calendar.getInstance(); - now.add(dayType, receivePeriod); - Date currenttime = now.getTime(); - //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 - if (currenttime.before(wxBillProperty.getReceiveDate())) { - wxBillProperty.setStatus(EnumBillStatus.NOT_EXPIRED.getCode()); - } else { - wxBillProperty.setStatus(EnumBillStatus.WAIT_PAY.getCode()); - } - } - } +// public void setExpiredDay(WxBillProperty wxBillProperty,int dayType, int receivePeriod){ +// Date date = new Date(); +// wxBillProperty.setExpiredDay(0L); +// if (wxBillProperty.getReceiveDate().before(date)) { +// long day = (date.getTime() - wxBillProperty.getReceiveDate().getTime()) / (24 * 60 * 60 * 1000); +// wxBillProperty.setStatus(EnumBillStatus.NOT_PAID.getCode()); +// if (day > 0) { +// wxBillProperty.setExpiredDay(day); +// } +// } else {//截止收租日在当前时间之后 +// Calendar now = Calendar.getInstance(); +// now.add(dayType, receivePeriod); +// Date currenttime = now.getTime(); +// //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 +// if (currenttime.before(wxBillProperty.getReceiveDate())) { +// wxBillProperty.setStatus(EnumBillStatus.NOT_EXPIRED.getCode()); +// } else { +// wxBillProperty.setStatus(EnumBillStatus.WAIT_PAY.getCode()); +// } +// } +// } public boolean isFirstDay(Date date){ int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date)); 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 bb19fe2d7..a7c98c6ee 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -322,7 +322,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { * 获取设置的跳点率 * ["1000-1200:10",">3000:20"] */ - public static RatioVo getPayRatio(Integer decimalSize,int from,String revenueLong,String busDiscountRatio,int timeType,long dayCount,int period){ + public static RatioVo getPayRatio(Integer decimalSize,int from,String revenueLong,String busDiscountRatio,int timeType,long dayCount,int period,Integer periodUnit){ RatioVo ratioVo = new RatioVo(); if(StringUtils.isBlank(busDiscountRatio)){ return ratioVo; @@ -456,7 +456,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { record.setPrice(countPrice(Constant.default_long_decimal_size,record.getPayRatio(),record.getRevenue(),EnumMissTimeType.OTHER.getCode(),record.getAdjustPeriod(),EnumGetRatioFrom.RENT.getCode()).toPlainString()); }else{ int dayCount = record.getReceivePeriod() * 30; - RatioVo ratioVo = getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.RENT.getCode(),record.getRevenue(),record.getBusDiscountRatio(),record.getBusDiscountTime(),dayCount,record.getReceivePeriod()); + RatioVo ratioVo = getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.RENT.getCode(),record.getRevenue(),record.getBusDiscountRatio(), + record.getBusDiscountTime(),dayCount,record.getReceivePeriod(),record.getReceivePeriodUnit()); //record.setPayRatio(ratioVo.getRatio()); record.setPrice(ratioVo.getPrice()); } @@ -697,7 +698,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { if (null != shopIds && shopIds.size() == 1) { bill.setShopId(shopIds.get(0)); } - setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); + //setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); if (bill.getReceivePay().equals("0")) { bill.setStatus(EnumBillStatus.PAID.getCode()); bill.setPayDate(date); @@ -767,7 +768,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { if (null != shopIds && shopIds.size() == 1) { bill.setShopId(shopIds.get(0)); } - setManageExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); + //setManageExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); if (bill.getReceivePay().equals("0")) { bill.setStatus(EnumBillStatus.PAID.getCode()); bill.setPayDate(date); @@ -808,7 +809,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { record.setPrice(countPrice(Constant.default_long_decimal_size,record.getPayRatio(),record.getRevenue(),EnumMissTimeType.OTHER.getCode(),record.getAdjustPeriod(),from).toPlainString()); }else{ int dayCount = record.getReceivePeriod() * 30; - RatioVo ratioVo = getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.RENT.getCode(),record.getRevenue(),record.getBusDiscountRatio(),record.getBusDiscountTime(),dayCount,record.getReceivePeriod()); + RatioVo ratioVo = getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.RENT.getCode(),record.getRevenue(), + record.getBusDiscountRatio(),record.getBusDiscountTime(),dayCount,record.getReceivePeriod(),record.getReceivePeriodUnit()); //record.setPayRatio(ratioVo.getRatio()); record.setPrice(ratioVo.getPrice()); } @@ -1208,7 +1210,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } String shopInfoStr = getShopInfoStr(wxRentContract); - Map resultMap = buildRent(receivePeriod, priceArrs,bussinessManagerPriceArrs,operationManagerPriceArrs, yearList, Calendar.MONTH, wxRentContract, userId, billcount, isPreview, shopInfoStr,saveDb); + Map resultMap = buildRent(receivePeriod, priceArrs,bussinessManagerPriceArrs,operationManagerPriceArrs, yearList, wxRentContract.getReceivePeriodUnit(), wxRentContract, userId, billcount, isPreview, shopInfoStr,saveDb); List billRentList = (List)resultMap.get("billList"); resultList.addAll(billRentList); return resultList; @@ -1620,7 +1622,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillRent.setOperatingManageFeeNeedPay(operatingManageFeeNeedpay); //截止收租日在当前时间之前 Date date = new Date(); - setExpiredDay(wxBillRent,dayType,receivePeriod); + //setExpiredDay(wxBillRent,dayType,receivePeriod); wxBillRent.setRevenue("0"); wxBillRent.updateTenantInfo(wxRentContract); wxBillRent.setMerchantId(wxRentContract.getMerchantId()); @@ -1678,7 +1680,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { manage.setNeedPay(needPay); manage.setReceivePay(needPay); //manage.setOwe(needPay); - setManageExpiredDay(manage,dayType,receivePeriod); + //setManageExpiredDay(manage,dayType,receivePeriod); //计算手续费 BigDecimal servicePay = new BigDecimal(needPay).multiply(new BigDecimal(serviceChargeRate)).divide(new BigDecimal(10000), decimalSize, BigDecimal.ROUND_HALF_UP); manage.setServiceChargePay(servicePay.toPlainString()); @@ -1687,51 +1689,51 @@ public class WxRentContractServiceImpl implements WxRentContractService { return manage; } - public void setExpiredDay(WxBillRent wxBillRent,int dayType, int receivePeriod){ - //截止收租日在当前时间之前 - Date date = new Date(); - wxBillRent.setExpiredDay(0L); - if (wxBillRent.getReceiveDate().before(date)) { - long day = (date.getTime() - wxBillRent.getReceiveDate().getTime()) / (24 * 60 * 60 * 1000); - wxBillRent.setStatus(EnumBillStatus.NOT_PAID.getCode()); - if (day > 0) { - wxBillRent.setExpiredDay(day); - } - } else {//截止收租日在当前时间之后 - Calendar now = Calendar.getInstance(); - now.add(dayType, receivePeriod); - Date currenttime = now.getTime(); - //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 - if (currenttime.before(wxBillRent.getReceiveDate())) { - wxBillRent.setStatus(EnumBillStatus.NOT_EXPIRED.getCode()); - } else { - wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); - } - } - } +// public void setExpiredDay(WxBillRent wxBillRent,int dayType, int receivePeriod){ +// //截止收租日在当前时间之前 +// Date date = new Date(); +// wxBillRent.setExpiredDay(0L); +// if (wxBillRent.getReceiveDate().before(date)) { +// long day = (date.getTime() - wxBillRent.getReceiveDate().getTime()) / (24 * 60 * 60 * 1000); +// wxBillRent.setStatus(EnumBillStatus.NOT_PAID.getCode()); +// if (day > 0) { +// wxBillRent.setExpiredDay(day); +// } +// } else {//截止收租日在当前时间之后 +// Calendar now = Calendar.getInstance(); +// now.add(dayType, receivePeriod); +// Date currenttime = now.getTime(); +// //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 +// if (currenttime.before(wxBillRent.getReceiveDate())) { +// wxBillRent.setStatus(EnumBillStatus.NOT_EXPIRED.getCode()); +// } else { +// wxBillRent.setStatus(EnumBillStatus.WAIT_PAY.getCode()); +// } +// } +// } - public void setManageExpiredDay(WxBillRentManage wxBillRentManage,int dayType, int receivePeriod){ - //截止收租日在当前时间之前 - Date date = new Date(); - wxBillRentManage.setExpiredDay(0L); - if (wxBillRentManage.getReceiveDate().before(date)) { - long day = (date.getTime() - wxBillRentManage.getReceiveDate().getTime()) / (24 * 60 * 60 * 1000); - wxBillRentManage.setStatus(EnumBillStatus.NOT_PAID.getCode()); - if (day > 0) { - wxBillRentManage.setExpiredDay(day); - } - } else {//截止收租日在当前时间之后 - Calendar now = Calendar.getInstance(); - now.add(dayType, receivePeriod); - Date currenttime = now.getTime(); - //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 - if (currenttime.before(wxBillRentManage.getReceiveDate())) { - wxBillRentManage.setStatus(EnumBillStatus.NOT_EXPIRED.getCode()); - } else { - wxBillRentManage.setStatus(EnumBillStatus.WAIT_PAY.getCode()); - } - } - } +// public void setManageExpiredDay(WxBillRentManage wxBillRentManage,int dayType, int receivePeriod){ +// //截止收租日在当前时间之前 +// Date date = new Date(); +// wxBillRentManage.setExpiredDay(0L); +// if (wxBillRentManage.getReceiveDate().before(date)) { +// long day = (date.getTime() - wxBillRentManage.getReceiveDate().getTime()) / (24 * 60 * 60 * 1000); +// wxBillRentManage.setStatus(EnumBillStatus.NOT_PAID.getCode()); +// if (day > 0) { +// wxBillRentManage.setExpiredDay(day); +// } +// } else {//截止收租日在当前时间之后 +// Calendar now = Calendar.getInstance(); +// now.add(dayType, receivePeriod); +// Date currenttime = now.getTime(); +// //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 +// if (currenttime.before(wxBillRentManage.getReceiveDate())) { +// wxBillRentManage.setStatus(EnumBillStatus.NOT_EXPIRED.getCode()); +// } else { +// wxBillRentManage.setStatus(EnumBillStatus.WAIT_PAY.getCode()); +// } +// } +// } @Transactional(rollbackFor = {Exception.class}) @Override @@ -3008,14 +3010,17 @@ public class WxRentContractServiceImpl implements WxRentContractService { //结束时间 instance.clear(); instance.setTime(start); - instance.add(dayType, receivePeriod); - instance.add(Calendar.DATE, -1); + instance = EnumContractReceivePeriodUnit.getAfterCalendarDay(instance, receivePeriod, dayType); + //instance.add(dayType, receivePeriod); + //instance.add(Calendar.DATE, -1); timeVo.setEndDate(instance.getTime()); //自然月 if(adjustPeriod.equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ if(count == 0){ - if(receivePeriod == 1) { //周期1个月 头一个月到当月底 + timeVo.setEndDate(EnumContractReceivePeriodUnit.getAfterCalendarNarDay(timeVo.getStartDate(), receivePeriod, dayType)); + /** + if(receivePeriod == 1) { //周期1个月 头一个月到当月底 头一个月或者头一个季度 timeVo.setEndDate(DateUtils.getLastDayForMonth(timeVo.getStartDate())); }else{ Date firstDay = DateUtils.getFirstDayForCurrMonth(start); @@ -3025,7 +3030,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { instance.add(dayType, receivePeriod); instance.add(Calendar.DAY_OF_MONTH, -1); timeVo.setEndDate(instance.getTime()); - } + }*/ } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java index 89387421a..00bc3e6a3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -452,6 +452,11 @@ public class WxShopServiceImpl implements WxShopService { WxRentContract rc = rentList.get(0); map.put("price", rc.getPrice()); map.put("receivePeriod", rc.getReceivePeriod()); + EnumContractReceivePeriodUnit pu = EnumContractReceivePeriodUnit.getEnum(rc.getReceivePeriodUnit()); + if (null != pu) { + map.put("receivePeriodUnit", pu.getMessage()); + } + } } } diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 5cb7172ac..8dfb1b31c 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -1554,4 +1554,89 @@ public class DateUtils { c.add(Calendar.DAY_OF_MONTH, -1); return c.getTime(); } + + + + //获取几个季度之后的季度开始时间 + public static Calendar getAfterQuaterStartDay(Date date,int quaters) { + Calendar start = Calendar.getInstance(); + start.setTime(date); + int currentYear = start.get(Calendar.YEAR); + //4个季度加一年 + int yearAdd = quaters/4; + int finalYear = currentYear + yearAdd; + //余下的月份 + int last = quaters % 4; + int currQuater = getQuater(start); + int finalQuater = currQuater + last; + if ( finalQuater > 4 ) { + finalYear = finalYear + 1; + finalQuater = finalQuater - 4; + } + return getQuaterStartDay(finalYear,finalQuater); + } + + //获取时间的季度 + public static int getQuater(Calendar calendar) { + int month = calendar.get(Calendar.MONTH); + if (month >= 0 && month <=2 ) { + return 1; + }else if (month >= 3 && month <= 5) { + return 2; + }else if (month >= 6 && month <= 8) { + return 3; + }else { + return 4; + } + } + + public static Calendar getQuaterStartDay(int year,int quater) { + Calendar start = Calendar.getInstance(); + start.set(Calendar.YEAR, year); + start.set(Calendar.DATE, 1); + start.set(Calendar.HOUR_OF_DAY, 0); + start.set(Calendar.MINUTE, 0); + start.set(Calendar.SECOND, 0); + switch(quater) { + case 1: + start.set(Calendar.MONTH, 0); + break; + case 2: + start.set(Calendar.MONTH, 3); + break; + case 3: + start.set(Calendar.MONTH, 6); + break; + case 4: + start.set(Calendar.MONTH, 9); + break; + } + return start; + } + + public static Calendar getQuaterEndDay(int year,int quater) { + Calendar end = Calendar.getInstance(); + end.set(Calendar.YEAR, year); + end.set(Calendar.DATE, 1); + end.set(Calendar.HOUR_OF_DAY, 23); + end.set(Calendar.MINUTE, 59); + end.set(Calendar.SECOND, 59); + switch(quater) { + case 1: + end.set(Calendar.MONTH, 3); + break; + case 2: + end.set(Calendar.MONTH, 6); + break; + case 3: + end.set(Calendar.MONTH, 9); + break; + case 4: + end.set(Calendar.MONTH, 12); + break; + + } + end.add(Calendar.DATE, -1); + return end; + } } diff --git a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml index 4733af3cf..0446c72c3 100644 --- a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml @@ -10,6 +10,7 @@ + @@ -59,7 +60,7 @@ `id`,`merchant_id`,`decimal_size`,`price`,`rental_start_date`,`rental_end_date`, `sign_date`,`receive_period`,`tenant_id`,`parent_tenant_id`,`filepath`,`status`,`contract_number`, - `deposit`,`pay_date`,`is_del`,`merchant_name`,`brand`,`business_id`, + `deposit`,`pay_date`,`is_del`,`merchant_name`,`brand`,`business_id`,`receive_period_unit`, `shop_type`,`updatetime`,`createtime`,`rent_area`,`rent_shop_type`, `link_person`,`link_phone`,`pay_account`,`filename`,`lease`,`rent_contract_id`, `start_date`,`end_date`,`apply_status`,`adjust_period`,`business_type`,adjust_ratio,`rent_info`,fixed_price, @@ -76,6 +77,7 @@ and out_date_notify_phone is not null and out_date_notify_phone != '' and and out_date_notify_days is not null and out_date_notify_days > 0 and `sign_date` = #{signDate} and `receive_period` = #{receivePeriod} + and `receive_period_unit` = #{receivePeriodUnit} and `tenant_id` = #{tenantId} diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index de7af495c..b09cad3cb 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -19,6 +19,7 @@ + @@ -75,7 +76,6 @@ - @@ -98,7 +98,6 @@ - @@ -133,7 +132,7 @@ `id`,`merchant_id`, `shop_type_sub`,`lease_purpose`,`contractual_rules`,`delivery_date`,`delivery_grace_period`,`opening_date`,`business_hours`,`scope_metre`, - `decimal_size`,`price`,`rental_start_date`,`rental_end_date`,`sign_date`,`receive_period`, + `decimal_size`,`price`,`rental_start_date`,`rental_end_date`,`sign_date`,`receive_period`,`receive_period_unit`, `tenant_id`,`parent_tenant_id`,`filepath`,`status`,`contract_number`, `first_party_bank_info`,`second_party_bank_info`,`second_party_tax_info`, `property_name`,`property_fee`,`fee_cycle`,`water_fee`,`electricity_fees`, @@ -160,6 +159,7 @@ and out_date_notify_phone is not null and out_date_notify_phone != '' and out_date_notify_days is not null and out_date_notify_days > 0 and `sign_date` = #{signDate} and `receive_period` = #{receivePeriod} + and `receive_period_unit` = #{receivePeriodUnit} and `tenant_id` = #{tenantId} @@ -468,7 +468,7 @@ select rc.`id`,rc.`merchant_id`, rc.`shop_type_sub`,rc.`lease_purpose`,rc.`contractual_rules`,rc.`delivery_date`,rc.`delivery_grace_period`,rc.`opening_date`,rc.`business_hours`,rc.`scope_metre`, - rc.`price`,rc.rent_area,rc.`rental_start_date`,rc.`rental_end_date`,rc.`sign_date`,rc.`receive_period`, + rc.`price`,rc.rent_area,rc.`rental_start_date`,rc.`rental_end_date`,rc.`sign_date`,rc.`receive_period`, rc.`receive_period_unit`, rc.`tenant_id`,rc.`parent_tenant_id`,rc.`filepath`,rc.`status`,rc.`contract_number`, rc.`first_party_bank_info`,rc.`second_party_bank_info`,rc.`second_party_tax_info`, rc.`property_name`,rc.`property_fee`,rc.`fee_cycle`,rc.`water_fee`,rc.`electricity_fees`, @@ -495,7 +495,7 @@ select rc.`id`,rc.`merchant_id`, rc.`shop_type_sub`,rc.`lease_purpose`,rc.`contractual_rules`,rc.`delivery_date`,rc.`delivery_grace_period`,rc.`opening_date`,rc.`business_hours`,rc.`scope_metre`, - rc.`price`,rc.rent_area,rc.`rental_start_date`,rc.`rental_end_date`,rc.`sign_date`,rc.`receive_period`, + rc.`price`,rc.rent_area,rc.`rental_start_date`,rc.`rental_end_date`,rc.`sign_date`,rc.`receive_period`, rc.`receive_period_unit`, rc.`tenant_id`,rc.`parent_tenant_id`,rc.`filepath`,rc.`status`,rc.`contract_number`, rc.`first_party_bank_info`,rc.`second_party_bank_info`,rc.`second_party_tax_info`, rc.`property_name`,rc.`property_fee`,rc.`fee_cycle`,rc.`water_fee`,rc.`electricity_fees`,