| | |
| | | |
| | | import cn.afterturn.easypoi.excel.ExcelExportUtil; |
| | | import cn.afterturn.easypoi.excel.entity.ExportParams; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ruoyi.account.api.feignClient.AppUserCarClient; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | |
| | | import com.ruoyi.common.log.enums.BusinessType; |
| | | import com.ruoyi.common.redis.service.RedisService; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; |
| | | import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.order.api.dto.SettlementConfirmAdd; |
| | | import com.ruoyi.order.api.model.ChargingListQuery; |
| | | import com.ruoyi.order.api.model.TChargingOrder; |
| | | import com.ruoyi.order.api.model.TSettlementConfirm; |
| | | import com.ruoyi.order.api.model.*; |
| | | import com.ruoyi.order.api.query.SettlementListQuery; |
| | | import com.ruoyi.order.api.query.TOrderInvoiceQuery; |
| | | import com.ruoyi.order.api.vo.ChargingOrderListVO; |
| | |
| | | import com.ruoyi.order.vo.ChargingOrderListInfoVO; |
| | | import com.ruoyi.order.api.vo.ChargingOrderTimeVO; |
| | | import com.ruoyi.order.service.*; |
| | | import com.ruoyi.other.api.domain.TVip; |
| | | import com.ruoyi.other.api.feignClient.VipClient; |
| | | import com.ruoyi.payment.api.feignClient.AliPaymentClient; |
| | | import com.ruoyi.payment.api.feignClient.WxPaymentClient; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import org.apache.poi.ss.usermodel.Workbook; |
| | | import org.omg.CORBA.PRIVATE_MEMBER; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.net.URLEncoder; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | |
| | | private TChargingOrderService chargingOrderService; |
| | | @Resource |
| | | private TSettlementConfirmService tSettlementConfirmService; |
| | | @Resource |
| | | private VipClient vipClient; |
| | | @PostMapping(value = "/chargingList") |
| | | @ApiOperation(value = "充电时段统计列表", tags = {"管理后台-财务结算"}) |
| | | public AjaxResult<ChargingOrderTimeVO> chargingList(@RequestBody ChargingListQuery dto) { |
| | |
| | | private ChargingGunClient chargingGunClient; |
| | | @Autowired |
| | | private AppUserCarClient appUserCarClient; |
| | | @Resource |
| | | private AccountingStrategyOrderService accountingStrategyOrderService; |
| | | @Resource |
| | | private TChargingOrderAccountingStrategyService tChargingOrderAccountingStrategyService; |
| | | @Resource |
| | | private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; |
| | | |
| | | @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"}) |
| | | @PutMapping("/export") |
| | | public void export(@RequestBody ChargingListQuery dto) { |
| | |
| | | tChargingOrderExport.setId(i); |
| | | tChargingOrderExport.setCode(chargingOrderListVO.getCode()); |
| | | tChargingOrderExport.setTerminalName(chargingOrderListVO.getTerminalName()); |
| | | // tChargingOrderExport.setName(); |
| | | // 查询这笔订单的计费策略名称 |
| | | List<AccountingStrategyOrder> list = accountingStrategyOrderService.lambdaQuery() |
| | | .eq(AccountingStrategyOrder::getChargingOrderId, chargingOrderListVO.getId()) |
| | | .list(); |
| | | if (!list.isEmpty()){ |
| | | tChargingOrderExport.setName(list.get(0).getName()); |
| | | } |
| | | tChargingOrderExport.setOrderClassification("1"); |
| | | tChargingOrderExport.setStartType("扫码"); |
| | | tChargingOrderExport.setOne("小程序"); |
| | |
| | | tChargingOrderExport.setServiceCharge(chargingOrderListVO.getServiceCharge()+""); |
| | | tChargingOrderExport.setTotal(chargingOrderListVO.getPaymentAmount()+""); |
| | | tChargingOrderExport.setChargingCapacity(chargingOrderListVO.getElectricity()+""); |
| | | // tChargingOrderExport.setElectrovalencePrice(); |
| | | // tChargingOrderExport.setServiceChargePrice(); |
| | | // tChargingOrderExport.setServiceChargePriceLook(); |
| | | // tChargingOrderExport.setCumulativeChargingTime(); |
| | | List<TChargingOrderAccountingStrategy> stageCost = tChargingOrderAccountingStrategyService.list( |
| | | new LambdaQueryWrapper<TChargingOrderAccountingStrategy>() |
| | | .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrderListVO.getId())); |
| | | if (!stageCost.isEmpty()){ |
| | | // 累加时段电费单价 取平均值 |
| | | BigDecimal bigDecimal1 = new BigDecimal("0"); |
| | | BigDecimal bigDecimal2 = new BigDecimal("0"); |
| | | BigDecimal bigDecimal3 = new BigDecimal("0"); |
| | | BigDecimal size = new BigDecimal(stageCost.size()); |
| | | |
| | | for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : stageCost) { |
| | | bigDecimal1 = bigDecimal1.add(tChargingOrderAccountingStrategy.getElectrovalence()); |
| | | bigDecimal2 = bigDecimal2.add(tChargingOrderAccountingStrategy.getPeriodServicePrice()); |
| | | bigDecimal3 = bigDecimal3.add(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()); |
| | | } |
| | | BigDecimal divide1 = bigDecimal1.divide(size, 2, RoundingMode.HALF_DOWN); |
| | | BigDecimal divide2 = bigDecimal2.divide(size, 2, RoundingMode.HALF_DOWN); |
| | | BigDecimal divide3 = bigDecimal3.divide(size, 2, RoundingMode.HALF_DOWN); |
| | | tChargingOrderExport.setElectrovalencePrice(divide1+""); |
| | | tChargingOrderExport.setServiceChargePrice(divide2+""); |
| | | tChargingOrderExport.setServiceChargePriceLook(divide3+""); |
| | | } |
| | | // 获取充电时间 |
| | | UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData(); |
| | | if (data5!=null){ |
| | | if (data5.getTime_remaining()!=null){ |
| | | tChargingOrderExport.setCumulativeChargingTime(data5.getCumulative_charging_time()+""); |
| | | } |
| | | } |
| | | tChargingOrderExport.setStartSoc(chargingOrderListVO.getStartSoc()); |
| | | tChargingOrderExport.setEndtSoc(chargingOrderListVO.getEndSoc()); |
| | | tChargingOrderExport.setIsSoc("否"); |
| | | tChargingOrderExport.setIsSocType(""); |
| | | tChargingOrderExport.setIsSocNum("0"); |
| | | tChargingOrderExport.setUserType("普通个人用户"); |
| | | TAppUser data2 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData(); |
| | | if (data2!=null&&data2.getVipId()!=null){ |
| | | TVip data1 = vipClient.getInfo1(data2.getVipId()).getData(); |
| | | if (data1!=null){ |
| | | tChargingOrderExport.setVipType(data1.getName()); |
| | | } |
| | | } |
| | | // tChargingOrderExport.setVipType(); |
| | | tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否"); |
| | | if (data3!=null){ |