| @@ -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); | |||
| } | |||