skyline 2 år sedan
förälder
incheckning
cd78ed8fbe

+ 13 - 2
service/src/main/java/com/kym/service/miniapp/impl/ChargeServiceImpl.java

@@ -195,6 +195,7 @@ public class ChargeServiceImpl implements ChargeService {
      */
     @Override
     @DSTransactional(rollbackFor = Exception.class)
+    @Async
     public Map<String, String> queryStartCharge(Long userId, String connectorId, Long userRechargeRightsId, Boolean isBooking, LocalDateTime startTime, LocalDateTime endTime) {
         var connectorId2StationId = getConnectorIdAndStationId(connectorId);
         connectorId = connectorId2StationId.get("connectorId");
@@ -439,9 +440,19 @@ public class ChargeServiceImpl implements ChargeService {
                 throw new BusinessException("充电状态查询异常,请稍后重试");
             }
 
+            // TODO 存在并发问题,订单刚启动充电,这里可能将订单状态重新更新为启动中,解决方案:屏蔽启动中状态更新
+
             // 更新订单信息
-            chargeOrderService.lambdaUpdate().set(ChargeOrder::getSoc, data.getDoubleValue("Soc")).set(ChargeOrder::getTotalPower, data.getDoubleValue("TotalPower")).set(ChargeOrder::getTotalMoney, (int) ((data.getDouble("TotalMoney") * 100))).set(ChargeOrder::getElecMoney, (int) ((data.getDouble("ElecMoney") * 100))).set(ChargeOrder::getServiceMoney, (int) ((data.getDouble("SeviceMoney") * 100))) // 这里文档service单词错误,按文档填写
-                    .set(ChargeOrder::getSumPeriod, (int) (data.getIntValue("SumPeriod"))).set(ChargeOrder::getChargeDetail, data.getString("ChargeDetails")).set(ChargeOrder::getChargeStatus, data.getIntValue("StartChargeSeqStat")).eq(ChargeOrder::getStartChargeSeq, startChargeSeq).update();
+            chargeOrderService.lambdaUpdate()
+                    .set(ChargeOrder::getSoc, data.getDoubleValue("Soc"))
+                    .set(ChargeOrder::getTotalPower, data.getDoubleValue("TotalPower"))
+                    .set(ChargeOrder::getTotalMoney, (int) ((data.getDouble("TotalMoney") * 100)))
+                    .set(ChargeOrder::getElecMoney, (int) ((data.getDouble("ElecMoney") * 100)))
+                    .set(ChargeOrder::getServiceMoney, (int) ((data.getDouble("SeviceMoney") * 100))) // 这里文档service单词错误,按文档填写
+                    .set(ChargeOrder::getSumPeriod, (int) (data.getIntValue("SumPeriod")))
+                    .set(ChargeOrder::getChargeDetail, data.getString("ChargeDetails"))
+                    .set(ChargeOrder::getChargeStatus, data.getIntValue("StartChargeSeqStat"))
+                    .eq(ChargeOrder::getStartChargeSeq, startChargeSeq).update();
 
             chargeOrder.setSoc(data.getDoubleValue("Soc"));
             chargeOrder.setTotalPower(data.getDoubleValue("TotalPower"));

+ 34 - 0
service/src/main/java/com/kym/service/miniapp/impl/InvoiceServiceImpl.java

@@ -1,6 +1,8 @@
 package com.kym.service.miniapp.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.poi.excel.ExcelUtil;
+import cn.hutool.poi.excel.ExcelWriter;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.github.pagehelper.PageHelper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -144,6 +146,38 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic
         return new PageBean<>(list);
     }
 
+    void invoiceExport(InvoiceQueryParam params){
+        MPJLambdaWrapper<Invoice> wrapper = JoinWrappers.lambda(Invoice.class)
+                .selectAsClass(Invoice.class, InvoiceVo.class)
+                .selectAll(Invoice.class)
+                .select(User::getMobilePhone)
+                .leftJoin(User.class, User::getId, Invoice::getUserId)
+                .like(CommUtil.isNotEmptyAndNull(params.getPhone()), User::getMobilePhone, params.getPhone())
+                .like(CommUtil.isNotEmptyAndNull(params.getInvoiceTitle()), Invoice::getInvoiceTitle, params.getInvoiceTitle())
+                .like(CommUtil.isNotEmptyAndNull(params.getBiller()), Invoice::getBiller, params.getBiller())
+                .like(CommUtil.isNotEmptyAndNull(params.getTaxId()), Invoice::getTaxId, params.getTaxId())
+                .like(CommUtil.isNotEmptyAndNull(params.getInvoiceType()), Invoice::getInvoiceType, params.getInvoiceType())
+                .like(CommUtil.isNotEmptyAndNull(params.getEmail()), Invoice::getEmail, params.getEmail())
+                .eq(params.getStatus() != null, Invoice::getStatus, params.getStatus())
+                .orderByDesc(Invoice::getId);
+        var list = selectJoinList(InvoiceVo.class, wrapper);
+
+        // 通过工具类创建writer,默认创建xls格式
+        ExcelWriter writer = ExcelUtil.getWriter();
+
+        //自定义标题别名
+        writer.addHeaderAlias("", "发票号码");
+        writer.addHeaderAlias("", "开票日期");
+        writer.addHeaderAlias("", "货物、应税劳务及服务");
+        writer.addHeaderAlias("", "金额");
+        writer.addHeaderAlias("", "税率");
+        writer.addHeaderAlias("", "税额");
+        writer.addHeaderAlias("", "购方识别号");
+        writer.addHeaderAlias("", "购方单位名称");
+
+
+    }
+
     @Override
     public List<Invoice> listInvoiceForApp(Integer status) {
         return lambdaQuery().eq(Invoice::getUserId, StpUtil.getLoginIdAsLong()).eq(status != null, Invoice::getStatus, status).list();