From eda8682a47c98a84773d6d4a65744d70cfd35eaf Mon Sep 17 00:00:00 2001 From: gongbiao Date: Thu, 22 Aug 2019 14:22:42 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=94=B5=E8=A1=A8=E7=AE=A1=E7=90=86][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/PowerBillAutoBuildSchedule.java | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java index 9b7e935ce..92be3c8bd 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java @@ -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); }