Преглед изворни кода

[账期优化][修改][修改账期生成逻辑]

release_toaliyun_real
luozukai пре 7 година
родитељ
комит
84cfb82f62
12 измењених фајлова са 261 додато и 13 уклоњено
  1. +1
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumChart.java
  2. +4
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxBillDepositMapper.java
  3. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxBillOtherMapper.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java
  5. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java
  6. +155
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java
  7. +17
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  8. +17
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  9. +32
    -1
      mallinkService/src/main/resources/mapper/WxBillDepositMapper.xml
  10. +14
    -4
      mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml
  11. +6
    -0
      mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml
  12. +8
    -0
      mallinkService/src/main/resources/mapper/WxBillRentMapper.xml

+ 1
- 0
mallinkService/src/main/java/com/iformall/enums/EnumChart.java Прегледај датотеку

@@ -57,6 +57,7 @@ public enum EnumChart {


INDEX_SHOP_RENT(49, "商铺出租数据"),
INDEX_BILL_RECE_RATE(50, "费用收缴数据"),
;

public static EnumChart getEnum(Integer code) {


+ 4
- 0
mallinkService/src/main/java/com/iformall/mapper/WxBillDepositMapper.java Прегледај датотеку

@@ -18,6 +18,10 @@ public interface WxBillDepositMapper extends CommonMapper<WxBillDeposit, Long> {

Map<String,Object> queryPayInfo(Map<String,Object> params);

Map<String,Object> queryOweInfoAll(Map<String,Object> params);

Map<String,Object> queryPayInfoAll(Map<String,Object> params);

void updateNotPaidStatus(Map<String,Object> params);

void updateWaitPayStatus(Map<String,Object> params);


+ 3
- 0
mallinkService/src/main/java/com/iformall/mapper/WxBillOtherMapper.java Прегледај датотеку

@@ -19,4 +19,7 @@ public interface WxBillOtherMapper extends CommonMapper<WxBillOther, Long> {

List<Map<String,Object>> queryBillList(WxBillOther record);

Map<String,Object> queryPayInfo(Map<String,Object> params);

Map<String,Object> queryOweInfo(Map<String,Object> params);
}

+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java Прегледај датотеку

@@ -20,6 +20,8 @@ public interface WxBillPropertyMapper extends CommonMapper<WxBillProperty, Long>

Map<String,Object> queryPayInfo(Map<String,Object> params);

Map<String,Object> queryOweInfo(Map<String,Object> params);

void updateNotPaidStatus(Map<String,Object> params);

void updateWaitPayStatus(Map<String,Object> params);


+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java Прегледај датотеку

@@ -18,6 +18,8 @@ public interface WxBillRentMapper extends CommonMapper<WxBillRent, Long> {

Map<String,Object> queryPayInfo(Map<String,Object> params);

Map<String,Object> queryOweInfo(Map<String,Object> params);

void updateNotPaidStatus(Map<String,Object> params);

void updateWaitPayStatus(Map<String,Object> params);


+ 155
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java Прегледај датотеку

@@ -63,6 +63,12 @@ public class WxChartServiceImpl implements WxChartDataService {
WxCouponService wxCouponService;
@Autowired
WxOrderGroupMapper wxOrderGroupMapper;
@Autowired
WxBillPropertyMapper wxBillPropertyMapper;
@Autowired
WxBillDepositMapper wxBillDepositMapper;
@Autowired
WxBillOtherMapper wxBillOtherMapper;

@Override
public ResultData queryData(Map<String, String> paramsMap) {
@@ -279,6 +285,11 @@ public class WxChartServiceImpl implements WxChartDataService {
return getIndexShopRentData(tenantId, startdate);
}

//首页商铺出租数据
if (chart.equals(EnumChart.INDEX_BILL_RECE_RATE.getCode())) {
return getBillReceRate(tenantId, startdate);
}

return new ResultData(ErrorCode.REPORT_TYPE_UNKNOWN);
}

@@ -2244,4 +2255,148 @@ public class WxChartServiceImpl implements WxChartDataService {
datamap.put("notRentTotalPoint",notRentTotalPoint);
return new ResultData(datamap);
}

/**
* 费用收缴数据
* @param tenantId
* @return
*/
private ResultData getBillReceRate(String tenantId, String startDateStr) {
HashMap<String, Object> datamap = new HashMap<>();
Date startDate = DateUtils.getDateFromString(startDateStr+"-01","yyyy-MM-dd").getTime();
Date endDate = DateUtils.getLastDayForMonth(startDate);

//租金收缴率
Map<String, Object> params = new HashMap<>();
params.put("tenantId", tenantId);
params.put("startdate", startDateStr + " 00:00:00");
params.put("enddate", DateUtils.date2String(endDate,"yyyy-MM-dd") + " 23:59:59");
Map<String, Object> payinfo = wxBillRentMapper.queryPayInfo(params);
if (payinfo != null) {
BigDecimal receivepay = (BigDecimal) payinfo.get("receivepay");
BigDecimal pay = (BigDecimal) payinfo.get("pay");
if (receivepay.doubleValue() > 0) {
BigDecimal divide = pay.divide(receivepay, 2, BigDecimal.ROUND_HALF_UP);
double zjcjl = divide.multiply(new BigDecimal(100)).doubleValue();
datamap.put("rentysje", receivepay);
datamap.put("rentssje", pay);
datamap.put("rentzjsjl", zjcjl);
} else {
datamap.put("rentysje", 0);
datamap.put("rentssje", 0);
datamap.put("rentzjsjl", 0);
}
} else {
datamap.put("rentysje", 0);
datamap.put("rentssje", 0);
datamap.put("rentzjsjl", 0);
}

//物业费收缴率
payinfo = wxBillPropertyMapper.queryPayInfo(params);
if (payinfo != null) {
BigDecimal receivepay = (BigDecimal) payinfo.get("receivepay");
BigDecimal pay = (BigDecimal) payinfo.get("pay");
if (receivepay.doubleValue() > 0) {
BigDecimal divide = pay.divide(receivepay, 2, BigDecimal.ROUND_HALF_UP);
double zjcjl = divide.multiply(new BigDecimal(100)).doubleValue();
datamap.put("propertyysje", receivepay);
datamap.put("propertyssje", pay);
datamap.put("propertyzjsjl", zjcjl);
} else {
datamap.put("propertyysje", 0);
datamap.put("propertyssje", 0);
datamap.put("propertyzjsjl", 0);
}
} else {
datamap.put("propertyysje", 0);
datamap.put("propertyssje", 0);
datamap.put("propertyzjsjl", 0);
}

//押金收缴率
payinfo = wxBillDepositMapper.queryPayInfoAll(params);
if (payinfo != null) {
BigDecimal receivepay = (BigDecimal) payinfo.get("receivepay");
BigDecimal pay = (BigDecimal) payinfo.get("pay");
if (receivepay.doubleValue() > 0) {
BigDecimal divide = pay.divide(receivepay, 2, BigDecimal.ROUND_HALF_UP);
double zjcjl = divide.multiply(new BigDecimal(100)).doubleValue();
datamap.put("depositysje", receivepay);
datamap.put("depositssje", pay);
datamap.put("propertyzjsjl", zjcjl);
} else {
datamap.put("depositysje", 0);
datamap.put("depositssje", 0);
datamap.put("depositzjsjl", 0);
}
} else {
datamap.put("depositysje", 0);
datamap.put("depositssje", 0);
datamap.put("depositzjsjl", 0);
}

//其他费用收缴率
payinfo = wxBillOtherMapper.queryPayInfo(params);
if (payinfo != null) {
BigDecimal receivepay = (BigDecimal) payinfo.get("receivepay");
BigDecimal pay = (BigDecimal) payinfo.get("pay");
if (receivepay.doubleValue() > 0) {
BigDecimal divide = pay.divide(receivepay, 2, BigDecimal.ROUND_HALF_UP);
double zjcjl = divide.multiply(new BigDecimal(100)).doubleValue();
datamap.put("otherysje", receivepay);
datamap.put("otherssje", pay);
datamap.put("otherzjsjl", zjcjl);
} else {
datamap.put("otherysje", 0);
datamap.put("otherssje", 0);
datamap.put("otherzjsjl", 0);
}
} else {
datamap.put("otherysje", 0);
datamap.put("otheryssje", 0);
datamap.put("otherzjsjl", 0);
}

//欠缴数据
BigDecimal totalOwe = new BigDecimal(0);
payinfo = wxBillRentMapper.queryOweInfo(params);
if (payinfo != null) {
BigDecimal owe = (BigDecimal) payinfo.get("owe");
totalOwe.add(owe);
datamap.put("rentOwe", owe);
} else {
datamap.put("rentOwe", 0);
}

payinfo = wxBillPropertyMapper.queryOweInfo(params);
if (payinfo != null) {
BigDecimal owe = (BigDecimal) payinfo.get("owe");
totalOwe.add(owe);
datamap.put("propertyOwe", owe);
} else {
datamap.put("propertyOwe", 0);
}

payinfo = wxBillOtherMapper.queryOweInfo(params);
if (payinfo != null) {
BigDecimal owe = (BigDecimal) payinfo.get("owe");
totalOwe.add(owe);
datamap.put("otherOwe", owe);
} else {
datamap.put("otherOwe", 0);
}

payinfo = wxBillDepositMapper.queryOweInfoAll(params);
if (payinfo != null) {
BigDecimal owe = (BigDecimal) payinfo.get("owe");
totalOwe.add(owe);
datamap.put("depositOwe", owe);
} else {
datamap.put("depositOwe", 0);
}
datamap.put("totalOwe", totalOwe);

return new ResultData(datamap);
}
}

+ 17
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java Прегледај датотеку

@@ -610,18 +610,31 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
instance.setTime(firstDay);
//最后一期有余,加上残月,(不整除时,最后一个月有余,否则为0)
if(receivePeriod > 1) {
instance.add(dayType, extralease);
if(isLastYesr) {
instance.add(dayType, extralease);
}else{
instance.add(dayType, receivePeriod);
}
}
if(isLastYesr) {
instance.add(Calendar.DAY_OF_MONTH, rentStartDateInt - 1);
}
instance.add(Calendar.DAY_OF_MONTH, rentStartDateInt-1);
instance.add(Calendar.DAY_OF_MONTH, -1);
wxBillProperty.setEndtime(instance.getTime());

//逻辑同计算endtime
double needPayDouble = 0;
double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxBillProperty.getEndtime());
if(receivePeriod > 1) {
needPayDouble += price * extralease;
if(isLastYesr) {
needPayDouble += price * extralease;
}else{
needPayDouble += price * receivePeriod;
}
}
if(isLastYesr) {
needPayDouble += oneDayProce * endDateInt;
}
needPayDouble += oneDayProce * endDateInt;
DecimalFormat format = new DecimalFormat("0");
needpay = Integer.parseInt(format.format(needPayDouble)); //分做四舍五入
}


+ 17
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Прегледај датотеку

@@ -945,18 +945,31 @@ public class WxRentContractServiceImpl implements WxRentContractService {
instance.setTime(firstDay);
//最后一期有余,加上残月,(不整除时,最后一个月有余,否则为0)
if(receivePeriod > 1) {
instance.add(dayType, extralease);
if(isLastYesr) {
instance.add(dayType, extralease);
}else{
instance.add(dayType, receivePeriod);
}
}
if(isLastYesr) {
instance.add(Calendar.DAY_OF_MONTH, rentStartDateInt - 1);
}
instance.add(Calendar.DAY_OF_MONTH, rentStartDateInt-1);
instance.add(Calendar.DAY_OF_MONTH, -1);
wxBillRent.setEndtime(instance.getTime());

//逻辑同计算endtime
double needPayDouble = 0;
double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxBillRent.getEndtime());
if(receivePeriod > 1) {
needPayDouble += price * extralease;
if(isLastYesr) {
needPayDouble += price * extralease;
}else{
needPayDouble += price * receivePeriod;
}
}
if(isLastYesr) {
needPayDouble += oneDayProce * endDateInt;
}
needPayDouble += oneDayProce * endDateInt;
DecimalFormat format = new DecimalFormat("0");
needpay = Integer.parseInt(format.format(needPayDouble)); //分做四舍五入
}


+ 32
- 1
mallinkService/src/main/resources/mapper/WxBillDepositMapper.xml Прегледај датотеку

@@ -96,7 +96,38 @@
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate}
group by tenant_id
</select>

<select id="queryPayInfoAll" resultType="hashmap" parameterType="hashmap">
select sum(res.receivepay) receivepay,sum(res.pay) pay,res.tenant_id from
(
select IFNULL(sum(receive_pay),0) receivepay,IFNULL(sum(pay),0) pay,tenant_id from wx_bill_rent_deposit
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate}
union all
select IFNULL(sum(receive_pay),0) receivepay,IFNULL(sum(pay),0) pay,tenant_id from wx_bill_property_deposit
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate}
union all
select IFNULL(sum(receive_pay),0) receivepay,IFNULL(sum(pay),0) pay,tenant_id from wx_bill_other_deposit
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate}
) res
group by res.tenant_id
</select>

<select id="queryOweInfoAll" resultType="hashmap" parameterType="hashmap">
select sum(res.owe) owe,res.tenant_id from
(
select IFNULL(sum(owe),0) owe,tenant_id from wx_bill_rent_deposit
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate}
union all
select IFNULL(sum(owe),0) owe,tenant_id from wx_bill_property_deposit
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate}
union all
select IFNULL(sum(owe),0) owe,tenant_id from wx_bill_other_deposit
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate}
) res
group by res.tenant_id

</select>

<update id="updateNotPaidStatus" parameterType="hashmap">
update wx_bill_rent_deposit set status=#{notPaid},expired_day=DATEDIFF(now(),receive_date)
where tenant_id=#{tenantId} and status!=#{paid} and status!=5 and DATEDIFF(now(),receive_date)>0


+ 14
- 4
mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml Прегледај датотеку

@@ -96,9 +96,19 @@
update wx_bill_other set status=#{waitPay} where tenant_id=#{tenantId}
and status!=#{paid} and DATEDIFF(now(),receive_date) &lt;=0
</update>


<select id="queryPayInfo" resultType="hashmap" parameterType="hashmap">
select IFNULL(sum(receive_pay),0) receivepay,IFNULL(sum(pay),0) pay,tenant_id from wx_bill_other
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate}
group by tenant_id
</select>


<select id="queryOweInfo" resultType="hashmap" parameterType="hashmap">
select IFNULL(sum(owe),0) owe,tenant_id from wx_bill_other
where status = 1 and tenant_id=#{tenantId} and receive_date between #{startdate} and #{enddate} and is_preview = 0
group by tenant_id
</select>
</mapper>

+ 6
- 0
mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml Прегледај датотеку

@@ -117,6 +117,12 @@
where tenant_id=#{tenantId} and date_format(receive_date,'%Y-%m')=#{receiveDate} and is_preview = 0
group by tenant_id
</select>

<select id="queryOweInfo" resultType="hashmap" parameterType="hashmap">
select IFNULL(sum(owe),0) owe,tenant_id from wx_bill_property
where status = 1 and tenant_id=#{tenantId} and receive_date between #{startdate} and #{enddate} and is_preview = 0
group by tenant_id
</select>
<update id="updateNotPaidStatus" parameterType="hashmap">
update wx_bill_property set status=#{notPaid},expired_day=DATEDIFF(now(),receive_date)


+ 8
- 0
mallinkService/src/main/resources/mapper/WxBillRentMapper.xml Прегледај датотеку

@@ -121,6 +121,12 @@
where tenant_id=#{tenantId} and receive_date between #{startdate} and #{enddate} and is_preview = 0
group by tenant_id
</select>

<select id="queryOweInfo" resultType="hashmap" parameterType="hashmap">
select IFNULL(sum(owe),0) owe,tenant_id from wx_bill_rent
where status = 1 and tenant_id=#{tenantId} and receive_date between #{startdate} and #{enddate} and is_preview = 0
group by tenant_id
</select>
<update id="updateNotPaidStatus" parameterType="hashmap">
update wx_bill_rent set status=#{notPaid},expired_day=DATEDIFF(now(),receive_date)
@@ -161,4 +167,6 @@
and br.status = 1 and c.id = #{contractId}
</select>



</mapper>

Loading…
Откажи
Сачувај