|
|
|
@@ -1,5 +1,6 @@ |
|
|
|
package com.iformall.schedule; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.iformall.domain.dto.KwMeterDataDto; |
|
|
|
import com.iformall.domain.po.*; |
|
|
|
@@ -91,35 +92,45 @@ public class PowerBillAutoBuildSchedule { |
|
|
|
Date lastdate = monthDate.get("lastdate"); |
|
|
|
MallUserInfo mallUserInfo = getMallUserInfo(); |
|
|
|
WxBillDaily wxBillDaily = getBillDaily(wxMerchantPowerBillConfig); |
|
|
|
JSONObject priceDetal = new JSONObject(); |
|
|
|
Date receiveDate = getReceiveDate(Integer.parseInt(wxPowerBillAutoConfig.getReceiveDay())); |
|
|
|
long receivePay = 0L; |
|
|
|
long receivePay; |
|
|
|
String unitPrice; |
|
|
|
long usedPower = 0L; |
|
|
|
Long merchantId = wxMerchantPowerBillConfig.getMerchantId(); |
|
|
|
if (wxMerchantPowerBillConfig.getBuildWay().equals(EnumPowerBillBuildWay.METER.getCode())) { |
|
|
|
//根据日期拉取电量 单价 * 电量 = 电费 |
|
|
|
int usedPower = getUsedPower(startdate, lastdate, merchantId); |
|
|
|
usedPower = getUsedPower(startdate, lastdate, merchantId); |
|
|
|
if (usedPower == 0) { |
|
|
|
logger.info("没有电量使用,不生成账单>>>>商户ID:" + merchantId); |
|
|
|
return; |
|
|
|
} |
|
|
|
String price = wxMerchantPowerBillConfig.getPrice(); |
|
|
|
priceDetal.put("unitPrice", price); |
|
|
|
priceDetal.put("power", usedPower); |
|
|
|
receivePay = new BigDecimal(price).multiply(new BigDecimal(100)) |
|
|
|
//按电表 单价从商户配置表中取 因为会修改 |
|
|
|
unitPrice = wxMerchantPowerBillConfig.getPrice(); |
|
|
|
receivePay = new BigDecimal(unitPrice).multiply(new BigDecimal(100)) |
|
|
|
.multiply(new BigDecimal(usedPower)).longValue(); |
|
|
|
} else { |
|
|
|
String unitPrice = wxPowerBillAutoConfig.getUnitPrice(); |
|
|
|
//按固定金额 单位从统一配置表中取 |
|
|
|
unitPrice = wxPowerBillAutoConfig.getUnitPrice(); |
|
|
|
String price = wxMerchantPowerBillConfig.getPrice(); |
|
|
|
priceDetal.put("unitPrice", unitPrice); |
|
|
|
priceDetal.put("power", 0); |
|
|
|
receivePay = new BigDecimal(price).multiply(new BigDecimal(100)).longValue(); |
|
|
|
} |
|
|
|
|
|
|
|
JSONArray priceDetals = new JSONArray(); |
|
|
|
JSONObject priceDetal = new JSONObject(); |
|
|
|
priceDetal.put("key", "unitPrice"); |
|
|
|
priceDetal.put("value", unitPrice); |
|
|
|
priceDetals.add(priceDetal); |
|
|
|
priceDetal = new JSONObject(); |
|
|
|
priceDetal.put("key", "power"); |
|
|
|
priceDetal.put("value", usedPower); |
|
|
|
priceDetals.add(priceDetal); |
|
|
|
|
|
|
|
wxBillDaily.setReceivePay(receivePay); |
|
|
|
wxBillDaily.setNeedPay(receivePay); |
|
|
|
wxBillDaily.setReceiveDate(receiveDate); |
|
|
|
wxBillDaily.setStarttime(startdate); |
|
|
|
wxBillDaily.setEndtime(enddate); |
|
|
|
wxBillDaily.setPriceDetail(priceDetal.toJSONString()); |
|
|
|
wxBillDaily.setPriceDetail(priceDetals.toJSONString()); |
|
|
|
wxBillDailyService.saveOrUpdate(wxBillDaily, mallUserInfo); |
|
|
|
|
|
|
|
} |
|
|
|
|